On 11/20/19 4:15 PM, Joseph Myers wrote:
> Various bad uses of the [[fallthrough]] attribute are constraint
> violations in C2x, so need pedwarns rather than warnings.
>
> This patch duly turns the relevant warnings into pedwarns. The
> relevant code is not specific to C, and does not know which form the
> attribute was given in ([[fallthrough]] or [[gnu::fallthrough]] or
> __attribute__((fallthrough))), but as I understand it these usages are
> also erroneous for C++ and it seems reasonable to give a pedwarn here
> even when a form other than [[fallthrough]] is being used.
>
> The precise meaning of the standard wording about "The next statement
> that would be executed" seems a but unclear in some corner cases; the
> tests added keep to cases where it is clear whether or not the next
> statement executed is of the required form.
>
> Bootstrapped with no regressions for x86_64-pc-linux-gnu. OK to commit
> (the gimplify.c changes)?
>
> gcc:
> 2019-11-20 Joseph Myers <jos...@codesourcery.com>
>
> * gimplify.c (expand_FALLTHROUGH_r, expand_FALLTHROUGH): Use
> pedwarn instead of warning_at for fallthrough not preceding a case
> or default label.
>
> gcc/c-family:
> 2019-11-20 Joseph Myers <jos...@codesourcery.com>
>
> * c-attribs.c (handle_fallthrough_attribute): Use pedwarn instead
> of warning.
>
> gcc/testsuite:
> 2019-11-20 Joseph Myers <jos...@codesourcery.com>
>
> * gcc.dg/c2x-attr-fallthrough-6.c: New test. Split out from
> c2x-attr-fallthrough-3.c.
> * gcc.dg/c2x-attr-fallthrough-1.c: Add more tests.
> * gcc.dg/c2x-attr-fallthrough-2.c: Update expected diagnostics.
> * gcc.dg/c2x-attr-fallthrough-3.c: Split inside-switch part of
> test out to c2x-attr-fallthrough-6.c.
OK
jeff