Thanks to Jakub Jelinek. The test is broken. It blindly assumes the
toplevel inline asm is placed into some sensible section, but that is
a wrong assumption. The right thing is to start the inline asm with
.text directive and end with .previous. The reason gcc 10 breaks it
is the -fno-common default, the int r1, ... vars are emitted into .bss
section and that is the section that is current when the inline asm is
emitted previously they were in .common at the end of the assembly file.
extern void foo ( void );
asm("\n"
+".text\n"
VG_SYM(foo) ":\n"
"\tpushl $0\n"
"\tpopfl\n"
"\tpopl " VG_SYM(r8) "\n"
"\tret\n"
+".previous\n"
);
int main ( void )