On Fri, May 15, 2026 at 3:42 PM Marek Polacek <[email protected]> wrote:
>
> On Thu, May 14, 2026 at 01:15:21AM -0700, Andrew Pinski wrote:
> > This reverts the group_case_labels_stmt part of r8-546-gca4d2851687875.
> > This is placed in the wrong location to remove the case statements that go
> > directly to __builtin_unreachable. In fact the removal of the case 
> > statements
> > make us lose optimizations in some cases (Wuninitialized-pr107919-1.C for 
> > one).
> >
> > Also this fixes PR 125290 by no longer leaving around a switch which just
> > has a default case.
> >
> > Bootstrapped and tested on x86_64-linux-gnu.
> >
> >       PR tree-optimization/125290
> >
> > gcc/ChangeLog:
> >
> >       * tree-cfg.cc (group_case_labels_stmt): Remove code that was
> >       added to remove `cases` that goto blocks of unreachable.
> >       * tree-ssa-forwprop.cc (optimize_unreachable): Remove the
> >       comment about switch cases being handled.
> >
> > gcc/testsuite/ChangeLog:
> >
> >       * g++.dg/warn/Wuninitialized-pr107919-1.C: Remove xfail.
> >       * gcc.dg/analyzer/taint-assert.c: Update for the non-removal
> >       of block containing unreachable.
> >       * gcc.dg/torture/pr125290-1.c: New test.
> >
> > Signed-off-by: Andrew Pinski <[email protected]>
> > ---
> >  .../g++.dg/warn/Wuninitialized-pr107919-1.C   |  2 +-
> >  gcc/testsuite/gcc.dg/analyzer/taint-assert.c  |  4 +-
> >  gcc/testsuite/gcc.dg/torture/pr125290-1.c     | 40 +++++++++++++++
> >  gcc/tree-cfg.cc                               | 51 +------------------
> >  gcc/tree-ssa-forwprop.cc                      |  3 +-
> >  5 files changed, 46 insertions(+), 54 deletions(-)
> >  create mode 100644 gcc/testsuite/gcc.dg/torture/pr125290-1.c
> >
> > diff --git a/gcc/testsuite/g++.dg/warn/Wuninitialized-pr107919-1.C 
> > b/gcc/testsuite/g++.dg/warn/Wuninitialized-pr107919-1.C
> > index 049fa4d307a..b3ed4628bdd 100644
> > --- a/gcc/testsuite/g++.dg/warn/Wuninitialized-pr107919-1.C
> > +++ b/gcc/testsuite/g++.dg/warn/Wuninitialized-pr107919-1.C
> > @@ -14,4 +14,4 @@ void do_something(void* storage)
> >    std::swap(event, swappedValue);
> >  }
> >
> > -// { dg-bogus "may be used uninitialized" "" { xfail *-*-* } 0 }
> > +// { dg-bogus "may be used uninitialized" "" 0 }
>
> This is wrong:
> ERROR: g++.dg/warn/Wuninitialized-pr107919-1.C  -std=gnu++98: syntax error in 
> target selector "0" for " dg-bogus 17 "may be used uninitialized" "" 0 "

Whoops, I was trying to figure out how this slipped through. I updated
the testcase without retesting the testcase. And I forgot that for the
line number you still needed the target stance.
Thanks for updating the testcase to be correct.

Thanks,
Drea

>
> Fixed by:
>
> gcc/testsuite/ChangeLog:
>
>         * g++.dg/warn/Wuninitialized-pr107919-1.C: Fix a dg-bogus.
> ---
>  gcc/testsuite/g++.dg/warn/Wuninitialized-pr107919-1.C | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/gcc/testsuite/g++.dg/warn/Wuninitialized-pr107919-1.C 
> b/gcc/testsuite/g++.dg/warn/Wuninitialized-pr107919-1.C
> index b3ed4628bdd..931b4648e00 100644
> --- a/gcc/testsuite/g++.dg/warn/Wuninitialized-pr107919-1.C
> +++ b/gcc/testsuite/g++.dg/warn/Wuninitialized-pr107919-1.C
> @@ -14,4 +14,4 @@ void do_something(void* storage)
>    std::swap(event, swappedValue);
>  }
>
> -// { dg-bogus "may be used uninitialized" "" 0 }
> +// { dg-bogus "may be used uninitialized" "" { target *-*-* } 0 }
>
> base-commit: f108e23d2bff50d0ee8cf0d25a08be5432b702b6
> --
> 2.54.0
>

Reply via email to