[Bug c/97125] [11 Regression] new problem with -Wduplicated-branches
cvs-commit at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Sep 23 14:11:39 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97125
--- Comment #8 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Marek Polacek <mpolacek@gcc.gnu.org>:
https://gcc.gnu.org/g:c48ffe21f8f3478cf08f9442e3f973df358caf2a
commit r11-3397-gc48ffe21f8f3478cf08f9442e3f973df358caf2a
Author: Marek Polacek <polacek@redhat.com>
Date: Sun Sep 20 16:11:00 2020 -0400
c: Fix -Wduplicated-branches ICE [PR97125]
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.
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.
More information about the Gcc-bugs
mailing list