CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
174 lines
5.2 KiB
C
174 lines
5.2 KiB
C
// RUN: %clang_cc1 -std=c2y -verify -Wunused -fsyntax-only -fblocks %s
|
|
// RUN: %clang_cc1 -std=c23 -verify -Wunused -fsyntax-only -fblocks -fnamed-loops %s
|
|
// RUN: %clang_cc1 -x c++ -verify -Wunused -fsyntax-only -fblocks -fnamed-loops %s
|
|
|
|
void f1() {
|
|
l1: while (true) {
|
|
break l1;
|
|
continue l1;
|
|
}
|
|
|
|
l2: for (;;) {
|
|
break l2;
|
|
continue l2;
|
|
}
|
|
|
|
l3: do {
|
|
break l3;
|
|
continue l3;
|
|
} while (true);
|
|
|
|
l4: switch (1) {
|
|
case 1:
|
|
break l4;
|
|
}
|
|
}
|
|
|
|
void f2() {
|
|
l1:;
|
|
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}}
|
|
|
|
l2: while (true) {
|
|
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}}
|
|
}
|
|
|
|
while (true) {
|
|
break l2; // expected-error {{'break' label does not name an enclosing loop or 'switch'}}
|
|
continue l2; // expected-error {{'continue' label does not name an enclosing loop}}
|
|
}
|
|
|
|
break l3; // expected-error {{'break' label does not name an enclosing loop or 'switch'}}
|
|
continue l3; // expected-error {{'continue' label does not name an enclosing loop}}
|
|
l3: while (true) {}
|
|
}
|
|
|
|
void f3() {
|
|
a: b: c: d: while (true) {
|
|
break a; // expected-error {{'break' label does not name an enclosing loop or 'switch'}}
|
|
break b; // expected-error {{'break' label does not name an enclosing loop or 'switch'}}
|
|
break c; // expected-error {{'break' label does not name an enclosing loop or 'switch'}}
|
|
break d;
|
|
|
|
continue a; // expected-error {{'continue' label does not name an enclosing loop}}
|
|
continue b; // expected-error {{'continue' label does not name an enclosing loop}}
|
|
continue c; // expected-error {{'continue' label does not name an enclosing loop}}
|
|
continue d;
|
|
|
|
e: while (true) {
|
|
break a; // expected-error {{'break' label does not name an enclosing loop or 'switch'}}
|
|
break b; // expected-error {{'break' label does not name an enclosing loop or 'switch'}}
|
|
break c; // expected-error {{'break' label does not name an enclosing loop or 'switch'}}
|
|
break d;
|
|
break e;
|
|
|
|
continue a; // expected-error {{'continue' label does not name an enclosing loop}}
|
|
continue b; // expected-error {{'continue' label does not name an enclosing loop}}
|
|
continue c; // expected-error {{'continue' label does not name an enclosing loop}}
|
|
continue d;
|
|
continue e;
|
|
}
|
|
|
|
break e; // expected-error {{'break' label does not name an enclosing loop or 'switch'}}
|
|
continue e; // expected-error {{'continue' label does not name an enclosing loop}}
|
|
}
|
|
}
|
|
|
|
void f4() {
|
|
a: switch (1) {
|
|
case 1: {
|
|
continue a; // expected-error {{label of 'continue' refers to a switch statement}}
|
|
}
|
|
}
|
|
}
|
|
|
|
void f5() {
|
|
a: {
|
|
break a; // expected-error {{'break' label does not name an enclosing loop or 'switch'}}
|
|
}
|
|
|
|
b: {
|
|
while (true)
|
|
break b; // expected-error {{'break' label does not name an enclosing loop or 'switch'}}
|
|
}
|
|
}
|
|
|
|
void f6() {
|
|
a: while (({
|
|
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}}
|
|
1;
|
|
})) {
|
|
({ break a; });
|
|
({ continue a; });
|
|
}
|
|
|
|
b: for (
|
|
int x = ({
|
|
break b; // expected-error {{'break' label does not name an enclosing loop or 'switch'}}
|
|
continue b; // expected-error {{'continue' label does not name an enclosing loop}}
|
|
1;
|
|
});
|
|
({
|
|
break b; // expected-error {{'break' label does not name an enclosing loop or 'switch'}}
|
|
continue b; // expected-error {{'continue' label does not name an enclosing loop}}
|
|
1;
|
|
});
|
|
(void) ({
|
|
break b; // expected-error {{'break' label does not name an enclosing loop or 'switch'}}
|
|
continue b; // expected-error {{'continue' label does not name an enclosing loop}}
|
|
1;
|
|
})
|
|
) {
|
|
({ break b; });
|
|
({ continue b; });
|
|
}
|
|
|
|
c: do {
|
|
({ break c; });
|
|
({ continue c; });
|
|
} while (({
|
|
break c; // expected-error {{'break' label does not name an enclosing loop or 'switch'}}
|
|
continue c; // expected-error {{'continue' label does not name an enclosing loop}}
|
|
1;
|
|
}));
|
|
|
|
d: switch (({
|
|
break d; // expected-error {{'break' label does not name an enclosing loop or 'switch'}}
|
|
continue d; // expected-error {{'continue' label does not name an enclosing loop}}
|
|
1;
|
|
})) {
|
|
case 1: {
|
|
({ break d; });
|
|
({ continue d; }); // expected-error {{label of 'continue' refers to a switch statement}}
|
|
}
|
|
}
|
|
}
|
|
|
|
void f7() {
|
|
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}}
|
|
};
|
|
}
|
|
|
|
while (true) {
|
|
break c; // expected-error {{'break' label does not name an enclosing loop or 'switch'}}
|
|
continue d; // expected-error {{'continue' label does not name an enclosing loop}}
|
|
}
|
|
}
|
|
|
|
void f8() {
|
|
l1: // no-warning
|
|
while (true) {
|
|
break l1;
|
|
}
|
|
|
|
l2: // no-warning
|
|
while (true) {
|
|
continue l2;
|
|
}
|
|
}
|