blob: 3d34211ed745a992226ee6a03e911c74009b6c6a [file] [log] [blame]
// RUN: %clang_cc1 -std=c++20 -verify -fsyntax-only -fnamed-loops %s
int a[10]{};
struct S {
int a[10]{};
};
void f1() {
l1: for (int x : a) {
break l1;
continue l1;
}
l2: for (int x : a) {
break l1; // expected-error {{'break' label does not name an enclosing loop or 'switch'}}
continue l1; // expected-error {{'continue' label does not name an enclosing loop}}
}
l3: for (int x : a) {
l4: for (int x : a) {
break l3;
break l4;
continue l3;
continue l4;
}
}
}
void f2() {
l1: for (
int x = ({
break l1; // expected-error {{'break' label does not name an enclosing loop or 'switch'}}
continue l1; // expected-error {{'continue' label does not name an enclosing loop}}
1;
});
int y : ({
break l1; // expected-error {{'break' label does not name an enclosing loop or 'switch'}}
continue l1; // expected-error {{'continue' label does not name an enclosing loop}}
S();
}).a
) {}
}
void f3() {
a: while (true) {
(void) []{
break a; // expected-error {{'break' label does not name an enclosing loop or 'switch'}}
continue a; // expected-error {{'continue' label does not name an enclosing loop}}
};
}
}