Skip to content

Commit 95166f5

Browse files
committed
remove confusing hlsl_unexpected_end_of_params diagnostic
- It has been noted more than once that this diagnostic is confusing and misleading. It can be more concise
1 parent a99fced commit 95166f5

File tree

4 files changed

+19
-36
lines changed

4 files changed

+19
-36
lines changed

clang/include/clang/Basic/DiagnosticParseKinds.td

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1860,8 +1860,6 @@ def err_hlsl_virtual_inheritance
18601860
: Error<"virtual inheritance is unsupported in HLSL">;
18611861

18621862
// HLSL Root Signature Parser Diagnostics
1863-
def err_hlsl_unexpected_end_of_params
1864-
: Error<"expected %0 to denote end of parameters, or, another valid parameter of %1">;
18651863
def err_hlsl_rootsig_repeat_param : Error<"specified the same parameter '%0' multiple times">;
18661864
def err_hlsl_rootsig_missing_param : Error<"did not specify mandatory parameter '%0'">;
18671865
def err_hlsl_number_literal_overflow : Error<

clang/lib/Parse/ParseHLSLRootSignature.cpp

Lines changed: 7 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,7 @@ bool RootSignatureParser::parse() {
6666
break;
6767
}
6868

69-
return consumeExpectedToken(TokenKind::end_of_stream,
70-
diag::err_hlsl_unexpected_end_of_params,
71-
/*param of=*/TokenKind::kw_RootSignature);
69+
return consumeExpectedToken(TokenKind::end_of_stream);
7270
}
7371

7472
template <typename FlagType>
@@ -119,9 +117,7 @@ std::optional<llvm::dxbc::RootFlags> RootSignatureParser::parseRootFlags() {
119117
} while (tryConsumeExpectedToken(TokenKind::pu_or));
120118
}
121119

122-
if (consumeExpectedToken(TokenKind::pu_r_paren,
123-
diag::err_hlsl_unexpected_end_of_params,
124-
/*param of=*/TokenKind::kw_RootFlags))
120+
if (consumeExpectedToken(TokenKind::pu_r_paren))
125121
return std::nullopt;
126122

127123
return Flags;
@@ -141,9 +137,7 @@ std::optional<RootConstants> RootSignatureParser::parseRootConstants() {
141137
if (!Params.has_value())
142138
return std::nullopt;
143139

144-
if (consumeExpectedToken(TokenKind::pu_r_paren,
145-
diag::err_hlsl_unexpected_end_of_params,
146-
/*param of=*/TokenKind::kw_RootConstants))
140+
if (consumeExpectedToken(TokenKind::pu_r_paren))
147141
return std::nullopt;
148142

149143
// Check mandatory parameters where provided
@@ -208,9 +202,7 @@ std::optional<RootDescriptor> RootSignatureParser::parseRootDescriptor() {
208202
if (!Params.has_value())
209203
return std::nullopt;
210204

211-
if (consumeExpectedToken(TokenKind::pu_r_paren,
212-
diag::err_hlsl_unexpected_end_of_params,
213-
/*param of=*/DescriptorKind))
205+
if (consumeExpectedToken(TokenKind::pu_r_paren))
214206
return std::nullopt;
215207

216208
// Check mandatory parameters were provided
@@ -276,9 +268,7 @@ std::optional<DescriptorTable> RootSignatureParser::parseDescriptorTable() {
276268
break;
277269
}
278270

279-
if (consumeExpectedToken(TokenKind::pu_r_paren,
280-
diag::err_hlsl_unexpected_end_of_params,
281-
/*param of=*/TokenKind::kw_DescriptorTable))
271+
if (consumeExpectedToken(TokenKind::pu_r_paren))
282272
return std::nullopt;
283273

284274
// Fill in optional visibility
@@ -330,9 +320,7 @@ RootSignatureParser::parseDescriptorTableClause() {
330320
if (!Params.has_value())
331321
return std::nullopt;
332322

333-
if (consumeExpectedToken(TokenKind::pu_r_paren,
334-
diag::err_hlsl_unexpected_end_of_params,
335-
/*param of=*/ParamKind))
323+
if (consumeExpectedToken(TokenKind::pu_r_paren))
336324
return std::nullopt;
337325

338326
// Check mandatory parameters were provided
@@ -373,9 +361,7 @@ std::optional<StaticSampler> RootSignatureParser::parseStaticSampler() {
373361
if (!Params.has_value())
374362
return std::nullopt;
375363

376-
if (consumeExpectedToken(TokenKind::pu_r_paren,
377-
diag::err_hlsl_unexpected_end_of_params,
378-
/*param of=*/TokenKind::kw_StaticSampler))
364+
if (consumeExpectedToken(TokenKind::pu_r_paren))
379365
return std::nullopt;
380366

381367
// Check mandatory parameters were provided
@@ -1282,7 +1268,6 @@ bool RootSignatureParser::consumeExpectedToken(TokenKind Expected,
12821268
case diag::err_expected:
12831269
DB << Expected;
12841270
break;
1285-
case diag::err_hlsl_unexpected_end_of_params:
12861271
case diag::err_expected_either:
12871272
case diag::err_expected_after:
12881273
DB << Expected << Context;

clang/test/SemaHLSL/RootSignature-err.hlsl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@ void bad_root_signature_2() {}
1717
[RootSignature(""), RootSignature("")] // expected-warning {{attribute 'RootSignature' is already applied}}
1818
void bad_root_signature_3() {}
1919

20-
[RootSignature("DescriptorTable(), invalid")] // expected-error {{expected end of stream to denote end of parameters, or, another valid parameter of RootSignature}}
20+
[RootSignature("DescriptorTable(), invalid")] // expected-error {{expected end of stream}}
2121
void bad_root_signature_4() {}
2222

23-
// expected-error@+1 {{expected ')' to denote end of parameters, or, another valid parameter of RootConstants}}
23+
// expected-error@+1 {{expected ')'}}
2424
[RootSignature("RootConstants(b0, num32BitConstants = 1, invalid)")]
2525
void bad_root_signature_5() {}
2626

@@ -31,10 +31,10 @@ void bad_root_signature_5() {}
3131
// CHECK: [[@LINE-2]]:42: note: expanded from macro 'MultiLineRootSignature'
3232
// CHECK-NEXT: [[@LINE-3]] | "RootConstants(num32BitConstants = 3, b0, invalid)"
3333
// CHECK-NEXT: | ^
34-
// expected-error@+1 {{expected ')' to denote end of parameters, or, another valid parameter of RootConstants}}
34+
// expected-error@+1 {{expected ')'}}
3535
[RootSignature(MultiLineRootSignature)]
3636
void bad_root_signature_6() {}
3737

38-
// expected-error@+1 {{expected end of stream to denote end of parameters, or, another valid parameter of RootSignature}}
38+
// expected-error@+1 {{expected end of stream}}
3939
[RootSignature("RootFlags() RootConstants(b0, num32BitConstants = 1))")]
4040
void bad_root_signature_7() {}

clang/unittests/Parse/ParseHLSLRootSignatureTest.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -843,7 +843,7 @@ TEST_F(ParseHLSLRootSignatureTest, InvalidParseUnexpectedTokenTest) {
843843
Signature, *PP);
844844

845845
// Test correct diagnostic produced
846-
Consumer->setExpected(diag::err_hlsl_unexpected_end_of_params);
846+
Consumer->setExpected(diag::err_expected);
847847
ASSERT_TRUE(Parser.parse());
848848

849849
ASSERT_TRUE(Consumer->isSatisfied());
@@ -865,7 +865,7 @@ TEST_F(ParseHLSLRootSignatureTest, InvalidParseInvalidTokenTest) {
865865
Signature, *PP);
866866

867867
// Test correct diagnostic produced - invalid token
868-
Consumer->setExpected(diag::err_hlsl_unexpected_end_of_params);
868+
Consumer->setExpected(diag::err_expected);
869869
ASSERT_TRUE(Parser.parse());
870870

871871
ASSERT_TRUE(Consumer->isSatisfied());
@@ -1258,7 +1258,7 @@ TEST_F(ParseHLSLRootSignatureTest, InvalidRootElementMissingCommaTest) {
12581258
Signature, *PP);
12591259

12601260
// Test correct diagnostic produced
1261-
Consumer->setExpected(diag::err_hlsl_unexpected_end_of_params);
1261+
Consumer->setExpected(diag::err_expected);
12621262
ASSERT_TRUE(Parser.parse());
12631263

12641264
ASSERT_TRUE(Consumer->isSatisfied());
@@ -1285,7 +1285,7 @@ TEST_F(ParseHLSLRootSignatureTest, InvalidDescriptorTableMissingCommaTest) {
12851285
Signature, *PP);
12861286

12871287
// Test correct diagnostic produced
1288-
Consumer->setExpected(diag::err_hlsl_unexpected_end_of_params);
1288+
Consumer->setExpected(diag::err_expected);
12891289
ASSERT_TRUE(Parser.parse());
12901290

12911291
ASSERT_TRUE(Consumer->isSatisfied());
@@ -1312,7 +1312,7 @@ TEST_F(ParseHLSLRootSignatureTest, InvalidRootConstantParamsCommaTest) {
13121312
Signature, *PP);
13131313

13141314
// Test correct diagnostic produced
1315-
Consumer->setExpected(diag::err_hlsl_unexpected_end_of_params);
1315+
Consumer->setExpected(diag::err_expected);
13161316
ASSERT_TRUE(Parser.parse());
13171317

13181318
ASSERT_TRUE(Consumer->isSatisfied());
@@ -1339,7 +1339,7 @@ TEST_F(ParseHLSLRootSignatureTest, InvalidRootDescriptorParamsCommaTest) {
13391339
Signature, *PP);
13401340

13411341
// Test correct diagnostic produced
1342-
Consumer->setExpected(diag::err_hlsl_unexpected_end_of_params);
1342+
Consumer->setExpected(diag::err_expected);
13431343
ASSERT_TRUE(Parser.parse());
13441344

13451345
ASSERT_TRUE(Consumer->isSatisfied());
@@ -1368,7 +1368,7 @@ TEST_F(ParseHLSLRootSignatureTest, InvalidDescriptorClauseParamsCommaTest) {
13681368
Signature, *PP);
13691369

13701370
// Test correct diagnostic produced
1371-
Consumer->setExpected(diag::err_hlsl_unexpected_end_of_params);
1371+
Consumer->setExpected(diag::err_expected);
13721372
ASSERT_TRUE(Parser.parse());
13731373

13741374
ASSERT_TRUE(Consumer->isSatisfied());
@@ -1395,7 +1395,7 @@ TEST_F(ParseHLSLRootSignatureTest, InvalidStaticSamplerCommaTest) {
13951395
Signature, *PP);
13961396

13971397
// Test correct diagnostic produced
1398-
Consumer->setExpected(diag::err_hlsl_unexpected_end_of_params);
1398+
Consumer->setExpected(diag::err_expected);
13991399
ASSERT_TRUE(Parser.parse());
14001400

14011401
ASSERT_TRUE(Consumer->isSatisfied());

0 commit comments

Comments
 (0)