aboutsummaryrefslogtreecommitdiff
path: root/gcc/memory-block.h
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2019-11-21 20:29:40 +0000
committerJoseph Myers <jsm28@gcc.gnu.org>2019-11-21 20:29:40 +0000
commit6c80b1b56dec2691436f3e2676e3d1b105b01b89 (patch)
tree9a51651149c41db896f090d511d9b1081849f9d7 /gcc/memory-block.h
parentb30e83f809b2aa65222eb969f8b4523e5e1961f2 (diff)
downloadgcc-6c80b1b56dec2691436f3e2676e3d1b105b01b89.zip
gcc-6c80b1b56dec2691436f3e2676e3d1b105b01b89.tar.gz
gcc-6c80b1b56dec2691436f3e2676e3d1b105b01b89.tar.bz2
Make more bad uses of fallthrough attribute into pedwarns.
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. gcc: * 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: * c-attribs.c (handle_fallthrough_attribute): Use pedwarn instead of warning. gcc/testsuite: * 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. From-SVN: r278599
Diffstat (limited to 'gcc/memory-block.h')
0 files changed, 0 insertions, 0 deletions