[Bug middle-end/100733] New: -fcompare-debug failure for pr85213.c at -O1 -fdisable-tree-phiopt2
pinskia at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Sun May 23 17:20:18 GMT 2021
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100733
Bug ID: 100733
Summary: -fcompare-debug failure for pr85213.c at -O1
-fdisable-tree-phiopt2
Product: gcc
Version: 12.0
Status: UNCONFIRMED
Keywords: wrong-debug
Severity: normal
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: pinskia at gcc dot gnu.org
Target Milestone: ---
So while modifying phi-opt, I ran into pr85213.c testcase failing with the C++
front-end. BUT the problem is not related at all to PHI-OPT changes as the IR
coming out of the front-end is hugely different with and without debug
information turned on.
Without debug info turned on we start with:
NON_LVALUE_EXPR <SAVE_EXPR <-(__builtin_expect ((long int) (x == 0), 3) == 0)>
>;
But with:
NON_LVALUE_EXPR <SAVE_EXPR <-(__builtin_expect (# DEBUG BEGIN STMT;
x != 0; ? 0 : 1, 3) == 0)>>
It just happens with the PHI-OPT, by the time we get to expand, the IR is very
similar BUT the difference comes from SSA names are different.
You can reproduce the failure on the trunk without any patches to PHI-OPT by
doing:
g++ -O1 -fsanitize=undefined -fcompare-debug -fdisable-tree-phiopt2
c-c++-common/ubsan/pr85213.c
More information about the Gcc-bugs
mailing list