When using g++, one can get label conflicts in assembler code by using specific names for globals that match up against functions. e.g.:
void a () {}
int _Z1av;
since the 'a' function is mapped to the label "_Z1av". (compile with
-S and look at the .s file.) This occurs even when the global variable
isn't declared within an extern "C" {} block. Should non-'extern "C"
{}' global variable names also be decorated?
