https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79061
Bug ID: 79061 Summary: [7 Regression][LTO][ASAN] LTO plus ASAN fails with "AddressSanitizer: initialization-order-fiasco" Product: gcc Version: 7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: lto Assignee: unassigned at gcc dot gnu.org Reporter: burnus at gcc dot gnu.org Target Milestone: --- Created attachment 40504 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=40504&action=edit Test case: untar (creates test/ subdir) and run "make" (or "g++ -g -O0 -flto -fsanitize=address *.cc && ./a.out") The attached test case (tar ball) consists of 5 .h/.cc files with 50 LoC in total (also counting #if def and empty lines). Running "make" fails with: rm -f a.out g++ -g -O0 -flto -fsanitize=address xptimer.cc xptiming.cc test.cc ./a.out ================================================================= ==13105==ERROR: AddressSanitizer: initialization-order-fiasco on address 0x000000601540 at pc 0x000000400a66 bp 0x7ffc758b0b40 sp 0x7ffc758b0b38 Works without LTO or with GCC 6 - and I believe there is no init order problem in the attached code.