This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [trans-mem] g++ _ITM_cxa_begin_catch/_ITM_cxa_end_catch not safe
- From: Richard Henderson <rth at redhat dot com>
- To: Patrick Marlier <patrick dot marlier at unine dot ch>
- Cc: Aldy Hernandez <aldyh at redhat dot com>, Pascal Felber <pascal dot felber at unine dot ch>, GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Fri, 16 Jul 2010 08:19:52 -0700
- Subject: Re: [trans-mem] g++ _ITM_cxa_begin_catch/_ITM_cxa_end_catch not safe
- References: <4C3F61DA.30702@unine.ch>
On 07/15/2010 12:30 PM, Patrick Marlier wrote:
> Hello,
>
> GCC told me that _ITM_cxa_begin_catch and _ITM_cxa_end_catch were not
> safe when compiling in C++. I fixed it doing that but I don't know if it
> is the way to fix it.
>
> Otherwise, what's the news about libitm?
>
> Have a nice day,
>
> Patrick.
>
> Index: cp/except.c
> ===================================================================
> --- cp/except.c (revision 161886)
> +++ cp/except.c (working copy)
> @@ -210,6 +210,7 @@
> {
> tree fn2 = get_identifier ("_ITM_cxa_begin_catch");
> fn2 = declare_nothrow_library_fn (fn2, ptr_type_node,
> ptr_type_node);
> + apply_tm_attr (fn2, get_identifier ("transaction_pure"));
> record_tm_replacement (fn, fn2);
> }
> }
> @@ -259,6 +260,7 @@
> tree fn2 = get_identifier ("_ITM_cxa_end_catch");
> fn2 = push_void_library_fn (fn2, void_list_node);
> TREE_NOTHROW (fn2) = 0;
> + apply_tm_attr (fn2, get_identifier ("transaction_pure"));
> record_tm_replacement (fn, fn2);
> }
> }
Applied, thanks.
r~