This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c/79153] -Wimplicit-fallthrough missed warning


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79153

--- Comment #10 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Author: jakub
Date: Fri Dec  1 08:17:06 2017
New Revision: 255298

URL: https://gcc.gnu.org/viewcvs?rev=255298&root=gcc&view=rev
Log:
        PR c/79153
        * tree.h (SWITCH_BREAK_LABEL_P): Define.
        * gimplify.c (collect_fallthrough_labels): Handle GIMPLE_BIND
        starting with a GIMPLE_SWITCH and ending with GIMPLE_LABEL with
        SWITCH_BREAK_LABEL_P set on the label.
        (gimplify_switch_expr): Set SWITCH_BREAK_LABEL_P on the label
        added for default case if it was missing and not all cases covered.
        Wrap GIMPLE_SWITCH and the switch_body_seq into a GIMPLE_BIND if
        switch_body_seq ends with a GIMPLE_LABEL with SWITCH_BREAK_LABEL_P
        set on the label.
        * tree-chrec.c (evolution_function_is_univariate_p): Add return true;
        to avoid -Wimplicit-fallthrough warning.
        * config/i386/i386.c (ix86_expand_special_args_builtin): Add
        FALLTHRU comment to avoid -Wimplicit-fallthrough warning.
c/
        * c-parser.c: Include tree-iterator.h.
        (c_parser_switch_statement): Emit LABEL_EXPR for the break label
        into SWITCH_BODY instead of after it and set SWITCH_BREAK_LABEL_P
        on it.
cp/
        * cp-gimplify.c (genericize_switch_stmt): Emit LABEL_EXPR for the
        break label into SWITCH_BODY instead of after it and set
        SWITCH_BREAK_LABEL_P on it.
        * parser.c (cp_parser_objc_expression): Add FALLTHRU comment to avoid
        -Wimplicit-fallthrough warning.
fortran/
        * match.c (gfc_match): Add FALLTHRU comment to avoid
        -Wimplicit-fallthrough warning.
testsuite/
        * c-c++-common/Wimplicit-fallthrough-7.c: Adjust expected warning
        line.
        * c-c++-common/Wimplicit-fallthrough-36.c: New test.

Added:
    trunk/gcc/testsuite/c-c++-common/Wimplicit-fallthrough-36.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/c/ChangeLog
    trunk/gcc/c/c-parser.c
    trunk/gcc/config/i386/i386.c
    trunk/gcc/cp/ChangeLog
    trunk/gcc/cp/cp-gimplify.c
    trunk/gcc/cp/parser.c
    trunk/gcc/fortran/ChangeLog
    trunk/gcc/fortran/match.c
    trunk/gcc/gimplify.c
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/c-c++-common/Wimplicit-fallthrough-7.c
    trunk/gcc/tree-chrec.c
    trunk/gcc/tree.h

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]