http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47801
Summary: guality tests have issues with LTO / -fwhole-program Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: debug AssignedTo: unassig...@gcc.gnu.org ReportedBy: rgue...@gcc.gnu.org CC: aol...@gcc.gnu.org As when using the linker plugin we effectively use -fwhole-program we get guality FAILs like FAIL: gcc.dg/guality/pr41353-1.c -O2 -flto line 17 vari1 == 2 * 17 FAIL: gcc.dg/guality/pr41353-1.c -O2 -flto line 17 vari2 == 3 * 17 FAIL: gcc.dg/guality/pr41353-1.c -O2 -flto line 17 vari3 == 2 * 17 FAIL: gcc.dg/guality/pr41353-1.c -O2 -flto line 17 vari4 == 3 * 17 FAIL: gcc.dg/guality/pr41353-1.c -O2 -flto line 17 vari5 == 4 * 17 FAIL: gcc.dg/guality/pr41353-1.c -O2 -flto line 17 vari6 == 5 * 17 this is because we promote the global var vari to static and do not output it. That causes dwarf2out.c:resolve_one_addr () to reject the built location expression as it still references vari (and is not constant folded). With -fwhole-program I see similar FAIL: gcc.dg/guality/pr41353-1.c -O1 line 17 vari == 17 FAIL: gcc.dg/guality/pr41353-1.c -O1 line 17 vari1 == 2 * 17 FAIL: gcc.dg/guality/pr41353-1.c -O1 line 17 vari2 == 3 * 17 FAIL: gcc.dg/guality/pr41353-1.c -O1 line 17 vari3 == 2 * 17 FAIL: gcc.dg/guality/pr41353-1.c -O1 line 17 vari4 == 3 * 17 FAIL: gcc.dg/guality/pr41353-1.c -O1 line 17 vari5 == 4 * 17 FAIL: gcc.dg/guality/pr41353-1.c -O1 line 17 vari6 == 5 * 17 The promotion to static const happens during IPA optimizations when the debug statements are already there and nothing folds them later.