Hi, Give below test: volatile int a, b, c; __attribute__((noinline)) int foo () { int i; for (i = 0; i < 1000; i++) { if (i % 17) a++; else b++; asm volatile( "foo_label:\n" "pushq %%rbx\n" "popq %%rbx\n" :"=m"(c) :"r"(i) ); c++; } return 0; } compiled with: gcc -O2 -fno-crossjumping -ftracer tracer-1.c -o tracer-1.o -c will end up with following assembler error message: tracer-1.c: Assembler messages: tracer-1.c:16: Error: symbol `foo_label' is already defined
Root cause is in tracer.c which duplicates basic block without checking if any GIMPLE_ASM defines labels. Is this a bug or invalid code? Thanks, bin