ipa/96291: don't crash on unoptimized lto functions
authorSergei Trofimovich <siarheit@google.com>
Sat, 25 Jul 2020 18:26:50 +0000 (19:26 +0100)
committerSergei Trofimovich <siarheit@google.com>
Tue, 28 Jul 2020 22:19:00 +0000 (23:19 +0100)
commitcbf10ac51c0b889e930f260a3d1fb601332befdf
tree95169b2eda2b244bf69ce24ce299b1da4cec89c7
parent33bf56ddc6a757d2066a50dd9ce8323b379a2a0a
ipa/96291: don't crash on unoptimized lto functions

In PR ipa/96291 the test contained an SCC with one
unoptimized function. This tricked ipa-cp into NULL dereference.

has_undead_caller_from_outside_scc_p() did not take into account
that unoptimized funtions don't have IPA summary analysis. And
dereferenced NULL pointer causing an ICE.

gcc/
PR ipa/96291
* ipa-cp.c (has_undead_caller_from_outside_scc_p): Consider
unoptimized callers as undead.

gcc/testsuite/
PR ipa/96291
* gcc.dg/lto/pr96291_0.c: New testcase.
* gcc.dg/lto/pr96291_1.c: Support file.
* gcc.dg/lto/pr96291_2.c: Likewise.
* gcc.dg/lto/pr96291.h: Likewise.
gcc/ipa-cp.c
gcc/testsuite/gcc.dg/lto/pr96291.h [new file with mode: 0644]
gcc/testsuite/gcc.dg/lto/pr96291_0.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/lto/pr96291_1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/lto/pr96291_2.c [new file with mode: 0644]