Commit 47500756 by Jan Hubicka Committed by Jan Hubicka

* tree.c (set_call_expr_flags): Fix handling of TM_PURE.

From-SVN: r202098
parent 6e8dad05
2013-08-29 Jan Hubicka <jh@suse.cz>
* tree.c (set_call_expr_flags): Fix handling of TM_PURE.
2013-08-30 Richard Biener <rguenther@suse.de> 2013-08-30 Richard Biener <rguenther@suse.de>
PR tree-optimization/58228 PR tree-optimization/58228
......
...@@ -9794,7 +9794,10 @@ build_common_tree_nodes (bool signed_char, bool short_double) ...@@ -9794,7 +9794,10 @@ build_common_tree_nodes (bool signed_char, bool short_double)
} }
} }
/* Modify DECL for given flags. */ /* Modify DECL for given flags.
TM_PURE attribute is set only on types, so the function will modify
DECL's type when ECF_TM_PURE is used. */
void void
set_call_expr_flags (tree decl, int flags) set_call_expr_flags (tree decl, int flags)
{ {
...@@ -9818,8 +9821,7 @@ set_call_expr_flags (tree decl, int flags) ...@@ -9818,8 +9821,7 @@ set_call_expr_flags (tree decl, int flags)
DECL_ATTRIBUTES (decl) = tree_cons (get_identifier ("leaf"), DECL_ATTRIBUTES (decl) = tree_cons (get_identifier ("leaf"),
NULL, DECL_ATTRIBUTES (decl)); NULL, DECL_ATTRIBUTES (decl));
if ((flags & ECF_TM_PURE) && flag_tm) if ((flags & ECF_TM_PURE) && flag_tm)
DECL_ATTRIBUTES (decl) = tree_cons (get_identifier ("transaction_pure"), apply_tm_attr (decl, get_identifier ("transaction_pure"));
NULL, DECL_ATTRIBUTES (decl));
/* Looping const or pure is implied by noreturn. /* Looping const or pure is implied by noreturn.
There is currently no way to declare looping const or looping pure alone. */ There is currently no way to declare looping const or looping pure alone. */
gcc_assert (!(flags & ECF_LOOPING_CONST_OR_PURE) gcc_assert (!(flags & ECF_LOOPING_CONST_OR_PURE)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment