From patchwork Fri Nov 9 15:03:47 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andi Kleen X-Patchwork-Id: 198095 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]) by ozlabs.org (Postfix) with SMTP id BC24D2C01C8 for ; Sat, 10 Nov 2012 02:04:17 +1100 (EST) Comment: DKIM? See http://www.dkim.org DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=gcc.gnu.org; s=default; x=1353078258; h=Comment: DomainKey-Signature:Received:Received:Received:Received:From:To: Cc:Subject:Date:Message-Id:Mailing-List:Precedence:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:Sender: Delivered-To; bh=1SnN2srW1ZFBdqZxqPFcUbVtUOQ=; b=OK53UrSrx0sOf+H gwnyK9EHoYvHOQQPRpys6z43/JfHfLADIfkrE7RymMPivpu+n7VA96xn/SJDJgSK 9LmdSiuP3xqIxh2HxomauyR6+MIo0A9TFZTtKSxVoWBq58q4c4VACZUU6hf9YQWG t4Zig7ulgC8zfvzmS8UubD7Ih7Lw= Comment: DomainKeys? See http://antispam.yahoo.com/domainkeys DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=default; d=gcc.gnu.org; h=Received:Received:X-SWARE-Spam-Status:X-Spam-Check-By:Received:Received:From:To:Cc:Subject:Date:Message-Id:Mailing-List:Precedence:List-Id:List-Unsubscribe:List-Archive:List-Post:List-Help:Sender:Delivered-To; b=Rf3P5/pFZKgnhL/tGJ2oUoSujePsfXkDfS4ugsqnT96pXfLvXyzWxuPFfAQ3nL MK5G5/Xgg1XGyxrC6q0vS6oFWDi+a4iwnUcRN4bWjdVOZlbSdfOqkgDJoB+NZdWU dfuQ/vKXy+0PuEKheaLNVuYU3QSDpjm+lUNr2t8B79D68=; Received: (qmail 23754 invoked by alias); 9 Nov 2012 15:04:10 -0000 Received: (qmail 23746 invoked by uid 22791); 9 Nov 2012 15:04:09 -0000 X-SWARE-Spam-Status: No, hits=-2.2 required=5.0 tests=AWL, BAYES_00, RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from one.firstfloor.org (HELO one.firstfloor.org) (213.235.205.2) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 09 Nov 2012 15:03:57 +0000 Received: by one.firstfloor.org (Postfix, from userid 503) id 69DB31A9806E; Fri, 9 Nov 2012 16:03:53 +0100 (CET) From: Andi Kleen To: gcc-patches@gcc.gnu.org Cc: Andi Kleen Subject: [PATCH] Handle target specific memory models in C frontend Date: Fri, 9 Nov 2012 16:03:47 +0100 Message-Id: <1352473427-11967-1-git-send-email-andi@firstfloor.org> 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 From: Andi Kleen get_atomic_generic_size would error out for __atomic_store(...,__ATOMIC_HLE_RELEASE) Just mask it out. All the memory orders are checked completely in builtins.c anyways. I'm not sure what that check is for, it could be removed in theory. Passed bootstrap and test suite on x86-64 gcc/c-family/: 2012-11-09 Andi Kleen PR55139 * c-common.c (get_atomic_generic_size): Mask with MEMMODEL_MASK --- gcc/c-family/c-common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/c-family/c-common.c b/gcc/c-family/c-common.c index c3a6465..7828d21 100644 --- a/gcc/c-family/c-common.c +++ b/gcc/c-family/c-common.c @@ -10097,7 +10097,7 @@ get_atomic_generic_size (location_t loc, tree function, VEC(tree,gc) *params) if (TREE_CODE (p) == INTEGER_CST) { int i = tree_low_cst (p, 1); - if (i < 0 || i >= MEMMODEL_LAST) + if (i < 0 || (i & MEMMODEL_MASK) >= MEMMODEL_LAST) { warning_at (loc, OPT_Winvalid_memory_model, "invalid memory model argument %d of %qE", x + 1,