The assembly code in StereoVolumeControl_impl.cpp does not use local assembler labels, so they get duplicated most likely because of automatic inlining. I see two options: 1) Remove the asm code, modern compilers should optimize the loop (lines 42-51) 2) Replace the global labels with local labels