http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55396
Markus Trippelsdorf <markus at trippelsdorf dot de> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |markus at trippelsdorf dot | |de --- Comment #1 from Markus Trippelsdorf <markus at trippelsdorf dot de> 2012-11-20 08:43:17 UTC --- markus@x4 /tmp % cat test.i int a[0]; struct thread_struct { int sp; int ip; } ; struct task_struct { struct thread_struct thread; struct task_struct *curr; } b, h, *l; int c, d, e, f, g, m; void fn1 () { struct task_struct *i; int *j; int k; need_resched: k = 0; h = *(typeof (&b)) a[k]; j = 0; i = 0; ++*j; struct task_struct *n = i; asm ("popl %%ebp\n\t" : "=c" (d), "=d" (e), "=S" (f), "=D" (g):[next_sp] "mm" (n->thread.ip), [prev] "ad" (0)); goto need_resched; } markus@x4 /tmp % gcc -O2 -c -m32 -fno-omit-frame-pointer test.i test.i: In function ‘fn1’: test.i:31:1: error: unrecognizable insn: } ^ (insn 25 47 26 3 (parallel [ (set (reg:SI 2 cx [77]) (asm_operands:SI ("popl %%ebp ") ("=c") 0 [ (mem:SI (plus:SI (reg:SI 2 cx [88]) (const_int 4 [0x4])) [2 MEM[(struct task_struct *)0B].thread.ip+0 S4 A32]) (reg:SI 2 cx [88]) ] [ (asm_input:SI ("mm") (null):0) (asm_input:SI ("ad") (null):0) ] [] test.i:28)) (set (reg:SI 1 dx [78]) (asm_operands:SI ("popl %%ebp ") ("=d") 1 [ (mem:SI (plus:SI (reg:SI 2 cx [88]) (const_int 4 [0x4])) [2 MEM[(struct task_struct *)0B].thread.ip+0 S4 A32]) (reg:SI 2 cx [88]) ] [ (asm_input:SI ("mm") (null):0) (asm_input:SI ("ad") (null):0) ] [] test.i:28)) (set (reg:SI 4 si [79]) (asm_operands:SI ("popl %%ebp ") ("=S") 2 [ (mem:SI (plus:SI (reg:SI 2 cx [88]) (const_int 4 [0x4])) [2 MEM[(struct task_struct *)0B].thread.ip+0 S4 A32]) (reg:SI 2 cx [88]) ] [ (asm_input:SI ("mm") (null):0) (asm_input:SI ("ad") (null):0) ] [] test.i:28)) (set (reg:SI 5 di [80]) (asm_operands:SI ("popl %%ebp ") ("=D") 3 [ (mem:SI (plus:SI (reg:SI 2 cx [88]) (const_int 4 [0x4])) [2 MEM[(struct task_struct *)0B].thread.ip+0 S4 A32]) (reg:SI 2 cx [88]) ] [ (asm_input:SI ("mm") (null):0) (asm_input:SI ("ad") (null):0) ] [] test.i:28)) (clobber (reg:QI 18 fpsr)) (clobber (reg:QI 17 flags)) ]) test.i:28 -1 (expr_list:REG_DEAD (reg:SI 2 cx [88]) (nil))) test.i:31:1: internal compiler error: in reload_cse_simplify_operands, at postreload.c:413 0x780d4a _fatal_insn(char const*, rtx_def const*, char const*, int, char const*) /home/markus/gcc/gcc/rtl-error.c:110 0x780d79 _fatal_insn_not_found(rtx_def const*, char const*, int, char const*) /home/markus/gcc/gcc/rtl-error.c:118 0x73bfbb reload_cse_simplify_operands /home/markus/gcc/gcc/postreload.c:413 0x73d52c reload_cse_simplify /home/markus/gcc/gcc/postreload.c:183 0x73d52c reload_cse_regs_1 /home/markus/gcc/gcc/postreload.c:222 0x73d98b reload_cse_regs /home/markus/gcc/gcc/postreload.c:70 0x73d98b rest_of_handle_postreload /home/markus/gcc/gcc/postreload.c:2289 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <http://gcc.gnu.org/bugs.html> for instructions.