From: aldyh Date: Mon, 6 Feb 2012 14:42:07 +0000 (+0000) Subject: PR middle-end/52047 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c86dbacda4b6e5c8b7271207cb3db7bef6ef829a;p=thirdparty%2Fgcc.git PR middle-end/52047 * trans-mem.c (expand_call_tm): Add an assertion. * calls.c (flags_from_decl_or_type): Add ECF_TM_PURE to 'no vops' functions. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183936 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 97ceef1d05f7..bf5e93b3f783 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2012-02-06 Patrick Marlier + + PR middle-end/52047 + * trans-mem.c (expand_call_tm): Add an assertion. + * calls.c (flags_from_decl_or_type): Add ECF_TM_PURE to 'no vops' + functions. + 2012-02-06 Richard Guenther PR tree-optimization/50955 diff --git a/gcc/calls.c b/gcc/calls.c index 53c033547268..19b2bfad81aa 100644 --- a/gcc/calls.c +++ b/gcc/calls.c @@ -716,7 +716,7 @@ flags_from_decl_or_type (const_tree exp) { if (is_tm_builtin (exp)) flags |= ECF_TM_BUILTIN; - else if ((flags & ECF_CONST) != 0 + else if ((flags & (ECF_CONST|ECF_NOVOPS)) != 0 || lookup_attribute ("transaction_pure", TYPE_ATTRIBUTES (TREE_TYPE (exp)))) flags |= ECF_TM_PURE; diff --git a/gcc/trans-mem.c b/gcc/trans-mem.c index de7a913be66b..d760db34b2ae 100644 --- a/gcc/trans-mem.c +++ b/gcc/trans-mem.c @@ -1,5 +1,5 @@ /* Passes for transactional memory support. - Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc. + Copyright (C) 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. This file is part of GCC. @@ -2267,6 +2267,8 @@ expand_call_tm (struct tm_region *region, } node = cgraph_get_node (fn_decl); + /* All calls should have cgraph here. */ + gcc_assert (node); if (node->local.tm_may_enter_irr) transaction_subcode_ior (region, GTMA_MAY_ENTER_IRREVOCABLE);