1 // RUN: %clang_cc1 -fsyntax-only -verify=expected,cxx23 -std=c++23 -Wpre-c++23-compat %s 2 // RUN: %clang_cc1 -fsyntax-only -verify=expected,cxx20 -std=c++20 %s 3 test_label_in_func()4void test_label_in_func() { 5 label1: 6 int x; 7 label2: 8 x = 1; 9 label3: label4: label5: 10 } // cxx20-warning {{label at end of compound statement is a C++23 extension}} \ 11 cxx23-warning {{label at end of compound statement is incompatible with C++ standards before C++23}} 12 test_label_in_switch(int v)13int test_label_in_switch(int v) { 14 switch (v) { 15 case 1: 16 return 1; 17 case 2: 18 return 2; 19 case 3: case 4: case 5: 20 } // cxx20-warning {{label at end of compound statement is a C++23 extension}} \ 21 cxx23-warning {{label at end of compound statement is incompatible with C++ standards before C++23}} 22 23 switch (v) { 24 case 6: 25 return 6; 26 default: 27 } // cxx20-warning {{label at end of compound statement is a C++23 extension}} \ 28 cxx23-warning {{label at end of compound statement is incompatible with C++ standards before C++23}} 29 30 return 0; 31 } 32