|  | // RUN: %clang_cc1 -fsyntax-only -verify=expected,cxx23 -std=c++23 -Wpre-c++23-compat %s | 
|  | // RUN: %clang_cc1 -fsyntax-only -verify=expected,cxx20 -std=c++20 %s | 
|  |  | 
|  | void test_label_in_func() { | 
|  | label1: | 
|  | int x; | 
|  | label2: | 
|  | x = 1; | 
|  | label3: label4: label5: | 
|  | } // cxx20-warning {{label at end of compound statement is a C++23 extension}} \ | 
|  | cxx23-warning {{label at end of compound statement is incompatible with C++ standards before C++23}} | 
|  |  | 
|  | int test_label_in_switch(int v) { | 
|  | switch (v) { | 
|  | case 1: | 
|  | return 1; | 
|  | case 2: | 
|  | return 2; | 
|  | case 3: case 4: case 5: | 
|  | } // cxx20-warning {{label at end of compound statement is a C++23 extension}} \ | 
|  | cxx23-warning {{label at end of compound statement is incompatible with C++ standards before C++23}} | 
|  |  | 
|  | switch (v) { | 
|  | case 6: | 
|  | return 6; | 
|  | default: | 
|  | } // cxx20-warning {{label at end of compound statement is a C++23 extension}} \ | 
|  | cxx23-warning {{label at end of compound statement is incompatible with C++ standards before C++23}} | 
|  |  | 
|  | return 0; | 
|  | } |