diff options
author | Marek Polacek <polacek@redhat.com> | 2022-05-08 17:36:34 -0400 |
---|---|---|
committer | Marek Polacek <polacek@redhat.com> | 2022-05-09 15:56:52 -0400 |
commit | 4b2a6628644b2ce15d877c1e85d14e314965a296 (patch) | |
tree | 93a5aedf0e767c9074643cee8c8e02a69cf1f689 /gcc/genoutput.cc | |
parent | 8c97f7fd2382aa77f36567207e949447db90a1fb (diff) | |
download | gcc-4b2a6628644b2ce15d877c1e85d14e314965a296.zip gcc-4b2a6628644b2ce15d877c1e85d14e314965a296.tar.gz gcc-4b2a6628644b2ce15d877c1e85d14e314965a296.tar.bz2 |
c++: Implement P2324R2, labels at the end of compound-stmts [PR103539]
This patch implements C++23 <https://wg21.link/p2324r2>, which allows
labels at the end of a compound statement. Its C FE counterpart was
already implemented in r11-4813.
In cp_parser_statement I rely on in_compound to determine whether we're
in a compound-statement, so that the patch doesn't accidentally allow
void fn(int c) {
if (c)
label:
}
Strangely, in_compound was reset after seeing a label (this is tested in
c-c++-common/gomp/pr63326.c), so I've made a modifiable copy specific
for OpenMP #pragma purposes.
PR c++/103539
gcc/cp/ChangeLog:
* parser.cc (cp_parser_statement): Constify the in_compound parameter.
Create a modifiable copy. Allow labels at the end of compound
statements.
gcc/testsuite/ChangeLog:
* g++.dg/cpp23/label1.C: New test.
* g++.dg/cpp23/label2.C: New test.
Diffstat (limited to 'gcc/genoutput.cc')
0 files changed, 0 insertions, 0 deletions