brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.1 KiB · 8a92ace Raw
27 lines · plain
1// RUN: clang-tblgen --gen-clang-diags-enums -I%S %s 2>&1 | FileCheck %s2include "DiagnosticBase.inc"3 4def Diag : Error<"%enum_select<EnumName>{%Val1{V1}|%Val2{V2}|%Val3{V3}}0">;5// CHECK: DIAG_ENUM(EnumName)6// CHECK-NEXT: DIAG_ENUM_ITEM(0, Val1)7// CHECK-NEXT: DIAG_ENUM_ITEM(1, Val2)8// CHECK-NEXT: DIAG_ENUM_ITEM(2, Val3)9// CHECK-NEXT: DIAG_ENUM_END()10 11// These are OK, we permit missing values since they might not be useful.12def Missing1 : Error<"%enum_select<DupeEnumName1>{V1|%Val2{V2}|%Val3{V3}}0">;13// CHECK: DIAG_ENUM(DupeEnumName1)14// CHECK-NEXT: DIAG_ENUM_ITEM(1, Val2)15// CHECK-NEXT: DIAG_ENUM_ITEM(2, Val3)16// CHECK-NEXT: DIAG_ENUM_END()17def Missing2 : Error<"%enum_select<DupeEnumName2>{%Val1{V1}|V2|%Val3{V3}}0">;18// CHECK: DIAG_ENUM(DupeEnumName2)19// CHECK-NEXT: DIAG_ENUM_ITEM(0, Val1)20// CHECK-NEXT: DIAG_ENUM_ITEM(2, Val3)21// CHECK-NEXT: DIAG_ENUM_END()22def Missing3 : Error<"%enum_select<DupeEnumName3>{%Val1{V1}|%Val2{V2}|V3}0">;23// CHECK: DIAG_ENUM(DupeEnumName3)24// CHECK-NEXT: DIAG_ENUM_ITEM(0, Val1)25// CHECK-NEXT: DIAG_ENUM_ITEM(1, Val2)26// CHECK-NEXT: DIAG_ENUM_END()27