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.

Reply via email to