mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-11-30 23:35:00 +08:00
re PR tree-optimization/44915 (ICE: SIGSEGV in walk_aliased_vdefs_1.constprop.42 (tree-ssa-alias.c:1707) with -findirect-inlining)
2010-07-23 Martin Jambor <mjambor@suse.cz> PR tree-optimization/44915 * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true. * ipa-inline.c (cgraph_mark_inline_edge): Likewise. (analyze_function): Likewise. * testsuite/g++.dg/torture/pr44915.C: New test. From-SVN: r162469
This commit is contained in:
parent
8cbeddcc33
commit
556ede6501
@ -1,3 +1,10 @@
|
||||
2010-07-23 Martin Jambor <mjambor@suse.cz>
|
||||
|
||||
PR tree-optimization/44915
|
||||
* ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
|
||||
* ipa-inline.c (cgraph_mark_inline_edge): Likewise.
|
||||
(analyze_function): Likewise.
|
||||
|
||||
2010-07-23 Martin Jambor <mjambor@suse.cz>
|
||||
|
||||
PR tree-optimization/44914
|
||||
|
@ -1278,7 +1278,9 @@ ipcp_read_summary (void)
|
||||
static bool
|
||||
cgraph_gate_cp (void)
|
||||
{
|
||||
return flag_ipa_cp;
|
||||
/* FIXME: We should remove the optimize check after we ensure we never run
|
||||
IPA passes when not optimizng. */
|
||||
return flag_ipa_cp && optimize;
|
||||
}
|
||||
|
||||
struct ipa_opt_pass_d pass_ipa_cp =
|
||||
|
@ -334,7 +334,9 @@ cgraph_mark_inline_edge (struct cgraph_edge *e, bool update_original,
|
||||
overall_size += new_size - old_size;
|
||||
ncalls_inlined++;
|
||||
|
||||
if (flag_indirect_inlining)
|
||||
/* FIXME: We should remove the optimize check after we ensure we never run
|
||||
IPA passes when not optimizng. */
|
||||
if (flag_indirect_inlining && optimize)
|
||||
return ipa_propagate_indirect_call_infos (curr, new_edges);
|
||||
else
|
||||
return false;
|
||||
@ -2085,7 +2087,9 @@ analyze_function (struct cgraph_node *node)
|
||||
current_function_decl = node->decl;
|
||||
|
||||
compute_inline_parameters (node);
|
||||
if (flag_indirect_inlining)
|
||||
/* FIXME: We should remove the optimize check after we ensure we never run
|
||||
IPA passes when not optimizng. */
|
||||
if (flag_indirect_inlining && optimize)
|
||||
inline_indirect_intraprocedural_analysis (node);
|
||||
|
||||
current_function_decl = NULL;
|
||||
|
@ -1,3 +1,8 @@
|
||||
2010-07-23 Martin Jambor <mjambor@suse.cz>
|
||||
|
||||
PR tree-optimization/44915
|
||||
* g++.dg/torture/pr44915.C: New test.
|
||||
|
||||
2010-07-23 Martin Jambor <mjambor@suse.cz>
|
||||
|
||||
PR tree-optimization/44914
|
||||
|
13
gcc/testsuite/g++.dg/torture/pr44915.C
Normal file
13
gcc/testsuite/g++.dg/torture/pr44915.C
Normal file
@ -0,0 +1,13 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-findirect-inlining" } */
|
||||
|
||||
struct A;
|
||||
|
||||
typedef void (A::*f_ptr) ();
|
||||
|
||||
void dummy (f_ptr) { }
|
||||
|
||||
void call_dummy (f_ptr cb)
|
||||
{
|
||||
dummy (cb);
|
||||
}
|
Loading…
Reference in New Issue
Block a user