1// RUN: not llvm-tblgen -gen-directive-decl -I %p/../../include %s 2>&1 | FileCheck -match-full-lines %s 2// RUN: not llvm-tblgen -gen-directive-impl -I %p/../../include %s 2>&1 | FileCheck -match-full-lines %s 3 4include "llvm/Frontend/Directive/DirectiveBase.td" 5 6def TestDirectiveLanguage : DirectiveLanguage { 7 let name = "TdlError"; 8} 9 10def TDLC_ClauseA : Clause<"clausea"> { 11 let isDefault = 1; 12} 13 14def TDLC_ClauseB : Clause<"clauseb"> { 15} 16 17def TDLC_ClauseC : Clause<"clausec"> { 18} 19 20def TDLC_ClauseD : Clause<"claused"> { 21} 22 23def TDL_DirA : Directive<"dira"> { 24 let allowedClauses = [ 25 VersionedClause<TDLC_ClauseA>, 26 VersionedClause<TDLC_ClauseB>, 27 VersionedClause<TDLC_ClauseD> 28 ]; 29 let allowedOnceClauses = [ 30 VersionedClause<TDLC_ClauseA>, 31 VersionedClause<TDLC_ClauseC> 32 ]; 33 let requiredClauses = [ 34 VersionedClause<TDLC_ClauseC>, 35 VersionedClause<TDLC_ClauseD> 36 ]; 37 let isDefault = 1; 38} 39 40// CHECK: error: Clause TDLC_ClauseA already defined on directive TDL_DirA 41// CHECK: error: Clause TDLC_ClauseD already defined on directive TDL_DirA 42// CHECK: error: One or more clauses are defined multiple times on directive TDL_DirA 43