When there is a class/struct within a CPP source G++ generates two copies (exactly the same) of asm code for such a CPP source.
See attached archive. Wihtin bbb.cpp there are two versions of the constructor of the Foo class: called there as 1) ZN3FooC2Ev 2) ZN3FooC1Ev
This does not allow inline asm code with labels to be compilable and possibly increases the size of the output executable.
Compilation command line: g++ -O0 -Wall -c -fmessage-length=0 -save-temps -osrc\bbb.o ..\src\bbb.cpp