C Parser: Implement mixing of labels and code.
authorMartin Uecker <muecker@gwdg.de>
Fri, 6 Nov 2020 23:48:33 +0000 (00:48 +0100)
committerMartin Uecker <muecker@gwdg.de>
Sat, 7 Nov 2020 08:13:49 +0000 (09:13 +0100)
commit8b7a9a249a63e066cff6e95db05a3158b4cc56cc
treeed7e18eaa5f43740b7693c50928401d0a7c58fa2
parent7fc0f78c3f43af1967cb7b1ee8f4947f3b890aa2
C Parser: Implement mixing of labels and code.

Implement mixing of labels and code as adopted for C2X
and process some std-attributes on labels.

2020-11-06  Martin Uecker  <muecker@gwdg.de>

gcc/
* doc/extend.texi: Document mixing labels and code.
* doc/invoke.texi: Likewise.

gcc/c/
* c-parser.c (c_parser_label): Implement mixing of labels and code.
(c_parser_all_labels): Likewise.

gcc/testsuite/
* c-c++-common/attr-fallthrough-2.c: Update compiler flags.
* c-c++-common/Wimplicit-fallthrough-20.c: Adapt test.
* gcc.dg/20031223-1.c: Update compiler flags and adapt test.
* gcc.dg/c11-labels-1.c: New test.
* gcc.dg/c11-labels-2.c: New test.
* gcc.dg/c11-labels-3.c: New test.
* gcc.dg/c2x-attr-syntax-3.c: Adapt test.
* gcc.dg/c2x-labels-1.c: New test.
* gcc.dg/c2x-labels-2.c: New test.
* gcc.dg/c2x-labels-3.c: New test.
* gcc.dg/decl-9.c: Update compiler flags and add error.
* gcc.dg/gomp/barrier-2.c: Update compiler flags and add warning.
* gcc.dg/gomp/declare-simd-5.c: Update compiler flags and adapt test.
* gcc.dg/gomp/declare-variant-2.c: Update compiler flags and add error.
* gcc.dg/label-compound-stmt-1.c: Update compiler flags.
* gcc.dg/parse-decl-after-label.c: Update compiler flags.
19 files changed:
gcc/c/c-parser.c
gcc/doc/extend.texi
gcc/doc/invoke.texi
gcc/testsuite/c-c++-common/Wimplicit-fallthrough-20.c
gcc/testsuite/c-c++-common/attr-fallthrough-2.c
gcc/testsuite/gcc.dg/20031223-1.c
gcc/testsuite/gcc.dg/c11-labels-1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/c11-labels-2.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/c11-labels-3.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/c2x-attr-syntax-3.c
gcc/testsuite/gcc.dg/c2x-labels-1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/c2x-labels-2.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/c2x-labels-3.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/decl-9.c
gcc/testsuite/gcc.dg/gomp/barrier-2.c
gcc/testsuite/gcc.dg/gomp/declare-simd-5.c
gcc/testsuite/gcc.dg/gomp/declare-variant-2.c
gcc/testsuite/gcc.dg/label-compound-stmt-1.c
gcc/testsuite/gcc.dg/parse-decl-after-label.c