This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
RE: alpha-dec-vms __sync_lock_test_and_set char/short -O2 fails on all 4.3.x and 4.4.x
In get_builtin_sync_mem, mem->u.fld.rt_rtx.code is REG in 4.5.0, SUBREG earlier.
So then compare that function and notice convert_memory_address added in 4.5.0 and then:
The same problem hit 32bit IA64/HP-UX (-milp32)
bug: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41801
fix: http://gcc.gnu.org/viewcvs/trunk/gcc/builtins.c?r1=153488&r2=153669&diff_format=h
jbook2:gcc jay$ diff -U5 builtins.c.orig builtins.c
--- builtins.c.orig??? 2010-04-25 09:55:44.000000000 -0700
+++ builtins.c??? 2010-04-25 09:55:58.000000000 -0700
@@ -6003,11 +6003,12 @@
?static rtx
?get_builtin_sync_mem (tree loc, enum machine_mode mode)
?{
?? rtx addr, mem;
?
-? addr = expand_expr (loc, NULL_RTX, Pmode, EXPAND_SUM);
+? addr = expand_expr (loc, NULL_RTX, ptr_mode, EXPAND_SUM);
+? addr = convert_memory_address (Pmode, addr);
?
?- Jay
----------------------------------------
> From: lopezibanez@gmail.com
> Date: Sun, 25 Apr 2010 17:28:10 +0200
> Subject: Re: alpha-dec-vms __sync_lock_test_and_set char/short -O2 fails on all 4.3.x and 4.4.x
> To: jay.krell@cornell.edu
> CC: gcc-help@gcc.gnu.org
>
> On 25 April 2010 17:22, Jay K wrote:
>>
>> For the archives:
>
> A better place would be http://gcc.gnu.org/bugzilla/
>
> Cheers,
>
> Manuel.