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