https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61336
Uroš Bizjak <ubizjak at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |rth at gcc dot gnu.org, | |ubizjak at gmail dot com --- Comment #1 from Uroš Bizjak <ubizjak at gmail dot com> --- The problem here is, that some inline asm tries to print the symbol name using "offsetable" memory constraint. This generates: (gdb) p debug_rtx (insn) (insn:TI 58 57 59 (asm_operands/v ("990: nop .pushsection .note.stapsdt,"?","note" .balign 4 .4byte 992f-991f,994f-993f,3 991: .asciz "stapsdt" 992: .balign 4 993: .8byte 990b .8byte _.stapsdt.base .8byte 0 .asciz "libc" .asciz "memory_mallopt_mxfast" .asciz "%n0@%1 %n2@%3" 994: .balign 4 .popsection ") ("") 0 [ (const_int 4 [0x4]) (reg:SI 11 $11 [orig:103 value ] [103]) (const_int -8 [0xfffffffffffffff8]) (mem/c:DI (symbol_ref:DI ("global_max_fast") [flags 0x6] <var_decl 0x20000eaf430 global_max_fast>) [5 global_max_fast+0 S8 A64]) ] [ (asm_input:SI ("n") malloc.c:4764) (asm_input:SI ("nor") malloc.c:4764) (asm_input:SI ("n") malloc.c:4764) (asm_input:DI ("nor") malloc.c:4764) ] [] malloc.c:4764) malloc.c:4764 -1 (nil)) $15 = void which in fact contains invalid unsplit symbol reference to "global_max_fast". So, we can either allow unsplit symbol references using following patch: --cut here-- Index: alpha.c =================================================================== --- alpha.c (revision 210950) +++ alpha.c (working copy) @@ -5450,7 +5450,6 @@ print_operand_address (FILE *file, rtx addr) offset = INTVAL (addr); break; -#if TARGET_ABI_OPEN_VMS case SYMBOL_REF: fprintf (file, "%s", XSTR (addr, 0)); return; @@ -5463,7 +5462,6 @@ print_operand_address (FILE *file, rtx addr) INTVAL (XEXP (XEXP (addr, 0), 1))); return; -#endif default: gcc_unreachable (); } --cut here-- or your souce should be fixed to avoid memory operands in inline asm.