It's the compiler, or be more accurate it's the linker, that does the job and it's typically called "name binding", to ensure that the name is unique across the whole program when generating the executable file. Go google on the details.
I have googled many times and failed in finding the resolution.
I hate that kind of "name binding".
If I really could not find how to fix the problem, I may resort to
fixing CL.exe itself.