https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110282

--- Comment #15 from mcccs at gmx dot com ---
There's indeed a miscompilation and I've confirmed it's still present in the
current trunk. With -fno-dce -fno-ipa-cp -fno-tree-dce the issue was visible
until r12-248 which made the issue latent. So I added -fno-tree-dse and then it
was made latent by r12-1848. So I added:

sed -i -e 's/mark_dead_statements (m_oparms\[i\]/(void)3;\/\//g'
./gcc/gcc/ipa-param-manipulation.cc

which replaced "mark_dead_statements(blahblah)" with a no-op but then it was
made latent by r15-5336 so I replaced in ipa-fnsummary.cc if (!gimple_plf
(stmt, STMT_NECESSARY)) with if (!gimple_plf (stmt, STMT_NECESSARY) && 0) and
the issue can be reproduced.

**Summary for reproducing the issue from trunk:**

Download the minimized testcase from
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110282#c14

-O3 -fno-dce -fno-ipa-cp -fno-tree-dce -fno-dse -fno-tree-dse

sed -i -e 's/mark_dead_statements (m_oparms\[i\]/(void)3;\/\//g'
./gcc/gcc/ipa-param-manipulation.cc

in ipa-fnsummary.cc, add && 0 after the condition of "!gimple_plf (stmt,
STMT_NECESSARY)"

Reply via email to