[Bug c++/46941] [trans-mem] new/delete operator are unsafe

aldyh at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Dec 23 16:19:00 GMT 2010


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46941

--- Comment #4 from Aldy Hernandez <aldyh at gcc dot gnu.org> 2010-12-23 16:19:12 UTC ---
Patrick.

You will find out that when hacking on GCC, everything is intrusive in
non-obvious ways :).

What I had in mind was something simple like this, since push_cp_library_fn()
only gets called when creating delete/new operators.

Index: cp/decl.c
===================================================================
--- cp/decl.c   (revision 168123)
+++ cp/decl.c   (working copy)
@@ -3775,6 +3775,8 @@ push_cp_library_fn (enum tree_code opera
                                 operator_code,
                                 type);
   pushdecl (fn);
+  if (flag_tm)
+    apply_tm_attr (fn, get_identifier ("transaction_pure"));
   return fn;
 }

However, this is exhibiting an unrelated bug with inlining that I am
investigating.

Thanks for all your bugreports!  They've made my life easier.



More information about the Gcc-bugs mailing list