From patchwork Wed Jan 6 10:46:32 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Schwab X-Patchwork-Id: 563872 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 5E85C1401CD for ; Wed, 6 Jan 2016 21:46:54 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b=HXndN5rW; dkim-atps=neutral DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:cc:subject:references:date:in-reply-to:message-id :mime-version:content-type; q=dns; s=default; b=CY/eees0PwZ75D6H 2Qa3LfPDz9EpArNfGSxZYT8mGa2JXGTMto5xoY/LqrVDIZW2aHhef5XNT9zilKtC NPHxz4WpOjBLicKZJoAIS8BJ0dcYHS0OEgHHD8KxB08hdIns9q3sH+c9pcg7sZSm rXynjyaqcY7JZC40nqTINNP7RWY= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:cc:subject:references:date:in-reply-to:message-id :mime-version:content-type; s=default; bh=9TU5ihIEvFj/fdOnYIL80o 1XsRw=; b=HXndN5rWbGNmOmd53dSBkO22wk9QNawZYL1YGl77PeDZ3wmnOcW/e0 RejTyVm9YLp1rAocSR9lOSFDlYlBJpiJ1xqEMsRiHQAPfiic7J/t7ItSJLoP6Jp6 OmpxFIRzFOVfJpYLzqENYgmrisG18sUoTeX1/vuJtqb1OhdiEfo5k= Received: (qmail 4385 invoked by alias); 6 Jan 2016 10:46:45 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 4373 invoked by uid 89); 6 Jan 2016 10:46:44 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.5 required=5.0 tests=AWL, BAYES_00, KAM_LAZY_DOMAIN_SECURITY, RCVD_IN_DNSWL_LOW autolearn=no version=3.3.2 spammy=270, dg-warning, dgwarning, H*r:501 X-HELO: mail-out.m-online.net Received: from mail-out.m-online.net (HELO mail-out.m-online.net) (212.18.0.10) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (CAMELLIA256-SHA encrypted) ESMTPS; Wed, 06 Jan 2016 10:46:43 +0000 Received: from frontend01.mail.m-online.net (unknown [192.168.8.182]) by mail-out.m-online.net (Postfix) with ESMTP id 3pb6nW1dGTz3hjdb; Wed, 6 Jan 2016 11:46:39 +0100 (CET) Received: from localhost (dynscan1.mnet-online.de [192.168.6.68]) by mail.m-online.net (Postfix) with ESMTP id 3pb6nV4XvBzvh22; Wed, 6 Jan 2016 11:46:38 +0100 (CET) Received: from mail.mnet-online.de ([192.168.8.182]) by localhost (dynscan1.mail.m-online.net [192.168.6.68]) (amavisd-new, port 10024) with ESMTP id P1v9QgXn51zY; Wed, 6 Jan 2016 11:46:37 +0100 (CET) X-Auth-Info: 21llwJrMw2tJKaaoNR7nIsnPmrAhJs/pISIeYbFdvo1AYw5w9KSgbVcyXsHVpkx7 Received: from linux.local (host-188-174-197-141.customer.m-online.net [188.174.197.141]) by mail.mnet-online.de (Postfix) with ESMTPA; Wed, 6 Jan 2016 11:46:37 +0100 (CET) Received: by linux.local (Postfix, from userid 501) id DCD521E538B; Wed, 6 Jan 2016 11:46:33 +0100 (CET) From: Andreas Schwab To: Marek Polacek Cc: GCC Patches Subject: Re: [PATCH] -Winvalid-memory-model warning not given for stdatomic.h macros (PR c/69104) References: <20160105150057.GF31604@redhat.com> X-Yow: Life is a POPULARITY CONTEST! I'm REFRESHINGLY CANDID!! Date: Wed, 06 Jan 2016 11:46:32 +0100 In-Reply-To: <20160105150057.GF31604@redhat.com> (Marek Polacek's message of "Tue, 5 Jan 2016 16:00:57 +0100") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) MIME-Version: 1.0 * gcc.dg/atomic-invalid-2.c: Remove duplicated content. diff --git a/gcc/testsuite/gcc.dg/atomic-invalid-2.c b/gcc/testsuite/gcc.dg/atomic-invalid-2.c index 6bf5c96..c73458e 100644 --- a/gcc/testsuite/gcc.dg/atomic-invalid-2.c +++ b/gcc/testsuite/gcc.dg/atomic-invalid-2.c @@ -57,62 +57,3 @@ clear (atomic_int *i) atomic_flag_clear_explicit (i, memory_order_acquire); /* { dg-warning "invalid memory model" } */ atomic_flag_clear_explicit (i, memory_order_acq_rel); /* { dg-warning "invalid memory model" } */ } -/* PR c/69104. Test atomic routines for invalid memory model errors. This - only needs to be tested on a single size. */ -/* { dg-do compile } */ -/* { dg-require-effective-target sync_int_long } */ - -#include - -/* atomic_store_explicit(): - The order argument shall not be memory_order_acquire, - memory_order_consume, nor memory_order_acq_rel. */ - -void -store (atomic_int *i) -{ - atomic_store_explicit (i, 0, memory_order_consume); /* { dg-warning "invalid memory model" } */ - atomic_store_explicit (i, 0, memory_order_acquire); /* { dg-warning "invalid memory model" } */ - atomic_store_explicit (i, 0, memory_order_acq_rel); /* { dg-warning "invalid memory model" } */ -} - -/* atomic_load_explicit(): - The order argument shall not be memory_order_release nor - memory_order_acq_rel. */ - -void -load (atomic_int *i) -{ - atomic_int j = atomic_load_explicit (i, memory_order_release); /* { dg-warning "invalid memory model" } */ - atomic_int k = atomic_load_explicit (i, memory_order_acq_rel); /* { dg-warning "invalid memory model" } */ -} - -/* atomic_compare_exchange(): - The failure argument shall not be memory_order_release nor - memory_order_acq_rel. The failure argument shall be no stronger than the - success argument. */ - -void -exchange (atomic_int *i) -{ - int r; - - atomic_compare_exchange_strong_explicit (i, &r, 0, memory_order_seq_cst, memory_order_release); /* { dg-warning "invalid failure memory" } */ - atomic_compare_exchange_strong_explicit (i, &r, 0, memory_order_seq_cst, memory_order_acq_rel); /* { dg-warning "invalid failure memory" } */ - atomic_compare_exchange_strong_explicit (i, &r, 0, memory_order_relaxed, memory_order_consume); /* { dg-warning "failure memory model cannot be stronger" } */ - - atomic_compare_exchange_weak_explicit (i, &r, 0, memory_order_seq_cst, memory_order_release); /* { dg-warning "invalid failure memory" } */ - atomic_compare_exchange_weak_explicit (i, &r, 0, memory_order_seq_cst, memory_order_acq_rel); /* { dg-warning "invalid failure memory" } */ - atomic_compare_exchange_weak_explicit (i, &r, 0, memory_order_relaxed, memory_order_consume); /* { dg-warning "failure memory model cannot be stronger" } */ -} - -/* atomic_flag_clear(): - The order argument shall not be memory_order_acquire nor - memory_order_acq_rel. */ - -void -clear (atomic_int *i) -{ - atomic_flag_clear_explicit (i, memory_order_acquire); /* { dg-warning "invalid memory model" } */ - atomic_flag_clear_explicit (i, memory_order_acq_rel); /* { dg-warning "invalid memory model" } */ -}