c/105151 - move early walloca pass
When the walloca pass gained support for ranger the early pass was not moved to a place where SSA form is available but remained in the lowering pipeline. For the testcase in this bug this is a problem because for errorneous input we still run the lowering pipeline but here have broken SSA form which ranger does not like. The solution is to rectify the mistake with using ranger without SSA form and move the pass which solves both issues. 2022-04-05 Richard Biener <rguenther@suse.de> PR c/105151 * passes.def (pass_walloca): Move early instance into pass_build_ssa_passes to make SSA form available. * gcc.dg/gimplefe-error-14.c: New testcase.
This commit is contained in:
parent
2874772c4b
commit
e68f5c90ba
|
@ -45,7 +45,6 @@ along with GCC; see the file COPYING3. If not see
|
|||
NEXT_PASS (pass_warn_function_return);
|
||||
NEXT_PASS (pass_coroutine_early_expand_ifns);
|
||||
NEXT_PASS (pass_expand_omp);
|
||||
NEXT_PASS (pass_walloca, /*strict_mode_p=*/true);
|
||||
NEXT_PASS (pass_build_cgraph_edges);
|
||||
TERMINATE_PASS_LIST (all_lowering_passes)
|
||||
|
||||
|
@ -57,6 +56,7 @@ along with GCC; see the file COPYING3. If not see
|
|||
PUSH_INSERT_PASSES_WITHIN (pass_build_ssa_passes)
|
||||
NEXT_PASS (pass_fixup_cfg);
|
||||
NEXT_PASS (pass_build_ssa);
|
||||
NEXT_PASS (pass_walloca, /*strict_mode_p=*/true);
|
||||
NEXT_PASS (pass_warn_printf);
|
||||
NEXT_PASS (pass_warn_nonnull_compare);
|
||||
NEXT_PASS (pass_early_warn_uninitialized);
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-fgimple" } */
|
||||
|
||||
int __GIMPLE () foo ()
|
||||
{
|
||||
int _1;
|
||||
return a_1(D); /* { dg-error "cannot have default definition" } */
|
||||
}
|
Loading…
Reference in New Issue