http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59122
Bug ID: 59122 Summary: libsanitizer merge from upstream r191666 causes duplicate symbol errors Product: gcc Version: 4.9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: sanitizer Assignee: unassigned at gcc dot gnu.org Reporter: bergner at gcc dot gnu.org CC: dodji at gcc dot gnu.org, dvyukov at gcc dot gnu.org, jakub at gcc dot gnu.org, kcc at gcc dot gnu.org After the bootstrap issue from PR59009 was fixed, I'm now seeing other fallout from the upstream libsanitizer merge. [bergner@igoo asan]$ cat foo.i extern int printf(const char *format, ...); void Child (void) { char x[32] = {0}; printf ("Child: \n", x); } int main (void) { return 0; } [bergner@igoo asan]$ /home/bergner/gcc/build/gcc-fsf-mainline-asan/gcc/xgcc -B/home/bergner/gcc/build/gcc-fsf-mainline-asan/gcc/ -fsanitize=address -O1 -m32 -c foo.i /tmp/ccadY6mS.s: Assembler messages: /tmp/ccadY6mS.s:136: Error: symbol `.LASANPC0' is already defined The duplicate symbol is coming from: void asan_function_start (void) { section *fnsec = function_section (current_function_decl); switch_to_section (fnsec); ASM_OUTPUT_DEBUG_LABEL (asm_out_file, "LASANPC", current_function_funcdef_no); } It seems current_function_funcdef_no isn't being incremented when we expected it to be.