diff --git a/clang/include/clang/Lex/LexHLSLRootSignature.h b/clang/include/clang/Lex/LexHLSLRootSignature.h index 9275e0d75840b..9901485b44d38 100644 --- a/clang/include/clang/Lex/LexHLSLRootSignature.h +++ b/clang/include/clang/Lex/LexHLSLRootSignature.h @@ -50,6 +50,10 @@ operator<<(const DiagnosticBuilder &DB, const RootSignatureToken::Kind Kind) { case RootSignatureToken::Kind::X: \ DB << SPELLING; \ break; +#define PUNCTUATOR(X, SPELLING) \ + case RootSignatureToken::Kind::pu_##X: \ + DB << #SPELLING; \ + break; #include "clang/Lex/HLSLRootSignatureTokenKinds.def" } return DB; diff --git a/clang/test/SemaHLSL/RootSignature-err.hlsl b/clang/test/SemaHLSL/RootSignature-err.hlsl index f544247f4db2a..aec8a15f8ed7f 100644 --- a/clang/test/SemaHLSL/RootSignature-err.hlsl +++ b/clang/test/SemaHLSL/RootSignature-err.hlsl @@ -18,3 +18,7 @@ void bad_root_signature_3() {} [RootSignature("DescriptorTable(), invalid")] // expected-error {{expected end of stream to denote end of parameters, or, another valid parameter of RootSignature}} void bad_root_signature_4() {} + +// expected-error@+1 {{expected ')' to denote end of parameters, or, another valid parameter of RootConstants}} +[RootSignature("RootConstants(b0, num32BitConstants = 1, invalid)")] +void bad_root_signature_5() {}