https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110126
--- Comment #1 from Gaius Mulley <gaius at gcc dot gnu.org> --- The procedure test is unreachable, if the module is re-written as: MODULE fooasm ; VAR x: INTEGER; PROCEDURE test; BEGIN ASM("" : : "m"(x)); END test; BEGIN test END fooasm. then the assembly output for procedure test in gm2 -S fooasm.mod looks similar to: static int x; void test (void) { asm ("" : : "m"(x)); }