http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48597
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|unassigned at gcc dot |jakub at gcc dot gnu.org |gnu.org | --- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-04-14 12:35:20 UTC --- Created attachment 23980 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=23980 gcc46-pr48597.patch Untested fix. Better testcase where the bug isn't mitigated by the CFI optimization patch mentioned earlier: void foo (void) { register long r __asm ("r12"); register long s __asm ("r13"); register long t __asm ("r14"); register long u __asm ("r15"); asm volatile ("xorq %0, %0" : "=r" (r)); asm volatile ("xorq %0, %0" : "=r" (s)); asm volatile ("xorq %0, %0" : "=r" (t)); asm volatile ("xorq %0, %0" : "=r" (u)); }