https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104236
--- Comment #3 from Nick Desaulniers <ndesaulniers at google dot com> --- Thanks for the feedback. I guess I was expecting these two to be somewhat equivalent: void x (int a) { if (a) asm("# %0"::"i"(__COUNTER__)); else asm("# %0"::"i"(__COUNTER__)); } void y (int a) { if (a) asm("# %="); else asm("# %="); } as was attempted in kernel commit commit 3d1e236022cc ("objtool: Prevent GCC from merging annotate_unreachable()")