http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52530
Bug #: 52530 Summary: [4.8 regression] Many 64-bit execution failures on Solaris 10/11 with Sun as Classification: Unclassified Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassig...@gcc.gnu.org ReportedBy: r...@gcc.gnu.org CC: h...@gcc.gnu.org, ubiz...@gmail.com Host: i386-pc-solaris2.1[01] Target: i386-pc-solaris2.1[01] Build: i386-pc-solaris2.1[01] Between 20120302 and 20120307, many 64-bit execution tests all over the testsuite started to fail on Solaris 10 and 11/x86 when using Sun as. With gas, all is fine. E.g. FAIL: gcc.c-torture/execute/20021120-1.c execution, -O3 -fomit-frame-pointer -funroll-loops The test aborts, and can be reproduced with -m64 -O1 -funroll-loops. If I add printf's to investigate the failure (gdb cannot print optimized-out values here), the failure vanishes. Between .s files for as and gas, there are no codegen differences when using -fno-dwarf2-cfi-asm. When I compare the 4.7 and mainline .s files with as, I find lots of changes like --- 20021120-1.s 2012-03-08 13:00:25.054484596 +0100 +++ /var/gcc/regression/trunk/10-gcc/build/gcc/testsuite/gcc/20021120-1.s 2012-03-08 12:48:21.890112842 +0100 @@ -534,37 +534,37 @@ movsd %xmm2, gd(,%rcx,8) cvtsi2ss %eax, %xmm3 movss %xmm3, gf(,%rcx,4) - leal 1(%rax), %edi + leal 1(%eax), %edi cvtsi2sd %edi, %xmm4 movslq %edi, %r8 movsd %xmm4, gd(,%r8,8) A reghunt revealed that this was caused by this patch: 2012-03-04 H.J. Lu <hongjiu...@intel.com> * config/i386/i386.c (ix86_print_operand_address): Only handle zero-extended DImode addresses. I'm now trying another bootstrap with this change reverted to see if this fixes all the failures. Rainer