// 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}} }; } }