http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47715
--- Comment #13 from H.J. Lu <hjl.tools at gmail dot com> 2011-07-28 02:43:35 UTC --- Another testcase: [hjl@gnu-6 ilp32-28]$ cat y.i extern __thread int *foo; extern void x (void *); void bar () { x ((void *) &foo); } [hjl@gnu-6 ilp32-28]$ make y.s /export/build/gnu/gcc/build-x86_64-linux/gcc/xgcc -B/export/build/gnu/gcc/build-x86_64-linux/gcc/ -S -o y.s -mx32 -fPIC -O -dp y.i y.i: In function \u2018bar\u2019: y.i:8:1: error: unrecognizable insn: (call_insn/u 5 4 6 3 (parallel [ (set (reg:DI 0 ax) (call:DI (mem:QI (symbol_ref:DI ("__tls_get_addr")) [0 S1 A8]) (const_int 0 [0]))) (unspec:DI [ (symbol_ref:SI ("foo") [flags 0x50] <var_decl 0x7fd32b39e140 foo>) ] UNSPEC_TLS_GD) ]) y.i:7 -1 (expr_list:REG_EH_REGION (const_int -2147483648 [0xffffffff80000000]) (nil)) (nil)) y.i:8:1: internal compiler error: in extract_insn, at recog.c:2115 Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. make: *** [y.s] Error 1 [hjl@gnu-6 ilp32-28]$