On Tue, Sep 22, 2020 at 08:18:09PM -0600, Sandra Loosemore wrote:
> On 9/20/20 5:08 PM, Marek Polacek via Gcc-patches wrote:
> > We crash here because since r11-3302 the C FE uses codes like SWITCH_STMT
> > in the else branches in the attached test, and inchash::add_expr in
> > do_warn_duplicated_branches doesn't handle these front-end codes.  In
> > the C++ FE this works because by the time we get to 
> > do_warn_duplicated_branches
> > we've already cp_genericize'd the SWITCH_STMT tree into a SWITCH_EXPR.
> > 
> > The fix is to call do_warn_duplicated_branches_r only after loops and other
> > structured control constructs have been lowered.
> > 
> > Bootstrapped/regtested on x86_64-pc-linux-gnu, ok for trunk?
> > 
> > gcc/c-family/ChangeLog:
> > 
> >     PR c/97125
> >     * c-gimplify.c (c_genericize): Only call do_warn_duplicated_branches_r
> >     after loops and other structured control constructs have been lowered.
> > 
> > gcc/testsuite/ChangeLog:
> > 
> >     PR c/97125
> >     * c-c++-common/Wduplicated-branches-15.c: New test.
> 
> As I noted in the issue, this was my bad, and the fix looks good to me
> (although I have no authority to approve it).

No worries, I can wait.
 
> The same problem was independently reported as PR c/97157.

Thanks, closed that one.

Marek

Reply via email to