ipa/97565 - fix IPA PTA body availability check
Looks like the existing check using has_gimple_body_p isn't enough at LTRANS time but I need to check in_other_partition as well. 2021-08-23 Richard Biener <rguenther@suse.de> PR ipa/97565 * tree-ssa-structalias.c (ipa_pta_execute): Check in_other_partition in addition to has_gimple_body. * g++.dg/lto/pr97565_0.C: New testcase. * g++.dg/lto/pr97565_1.C: Likewise.
This commit is contained in:
parent
39baa886bc
commit
0230e69a3f
3 changed files with 27 additions and 8 deletions
7
gcc/testsuite/g++.dg/lto/pr97565_0.C
Normal file
7
gcc/testsuite/g++.dg/lto/pr97565_0.C
Normal file
|
@ -0,0 +1,7 @@
|
|||
// { dg-lto-do link }
|
||||
// { dg-lto-options { "-O -flto -fipa-pta" } }
|
||||
|
||||
extern "C" void abort(void)
|
||||
{
|
||||
abort();
|
||||
}
|
6
gcc/testsuite/g++.dg/lto/pr97565_1.C
Normal file
6
gcc/testsuite/g++.dg/lto/pr97565_1.C
Normal file
|
@ -0,0 +1,6 @@
|
|||
extern "C" void abort(void);
|
||||
|
||||
int main(int argc, char * argv[])
|
||||
{
|
||||
abort();
|
||||
}
|
|
@ -8220,10 +8220,12 @@ ipa_pta_execute (void)
|
|||
FOR_EACH_DEFINED_FUNCTION (node)
|
||||
{
|
||||
varinfo_t vi;
|
||||
/* Nodes without a body are not interesting. Especially do not
|
||||
visit clones at this point for now - we get duplicate decls
|
||||
there for inline clones at least. */
|
||||
if (!node->has_gimple_body_p () || node->inlined_to)
|
||||
/* Nodes without a body in this partition are not interesting.
|
||||
Especially do not visit clones at this point for now - we
|
||||
get duplicate decls there for inline clones at least. */
|
||||
if (!node->has_gimple_body_p ()
|
||||
|| node->in_other_partition
|
||||
|| node->inlined_to)
|
||||
continue;
|
||||
node->get_body ();
|
||||
|
||||
|
@ -8301,8 +8303,10 @@ ipa_pta_execute (void)
|
|||
struct function *func;
|
||||
basic_block bb;
|
||||
|
||||
/* Nodes without a body are not interesting. */
|
||||
if (!node->has_gimple_body_p () || node->clone_of)
|
||||
/* Nodes without a body in this partition are not interesting. */
|
||||
if (!node->has_gimple_body_p ()
|
||||
|| node->in_other_partition
|
||||
|| node->clone_of)
|
||||
continue;
|
||||
|
||||
if (dump_file)
|
||||
|
@ -8431,8 +8435,10 @@ ipa_pta_execute (void)
|
|||
unsigned i;
|
||||
basic_block bb;
|
||||
|
||||
/* Nodes without a body are not interesting. */
|
||||
if (!node->has_gimple_body_p () || node->clone_of)
|
||||
/* Nodes without a body in this partition are not interesting. */
|
||||
if (!node->has_gimple_body_p ()
|
||||
|| node->in_other_partition
|
||||
|| node->clone_of)
|
||||
continue;
|
||||
|
||||
fn = DECL_STRUCT_FUNCTION (node->decl);
|
||||
|
|
Loading…
Add table
Reference in a new issue