alpha-dec-vms __sync_lock_test_and_set char/short -O2 fails on all 4.3.x and 4.4.x

Jay K jay.krell@cornell.edu
Mon Apr 26 13:51:00 GMT 2010


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.
 		 	   		  



More information about the Gcc-help mailing list