Skip to content

Commit 1edee6e

Browse files
committed
clean up switch statement, remove bad comments
1 parent dcaf3ad commit 1edee6e

File tree

2 files changed

+13
-22
lines changed

2 files changed

+13
-22
lines changed

clang/lib/Sema/SemaDeclAttr.cpp

Lines changed: 12 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -7387,45 +7387,37 @@ static void DiagnoseHLSLResourceRegType(Sema &S, SourceLocation &ArgLoc,
73877387
}
73887388
switch (DeclResourceClass) {
73897389
case llvm::hlsl::ResourceClass::SRV: {
7390-
if (Slot[0] != 't')
7391-
S.Diag(ArgLoc, diag::err_hlsl_mismatching_register_resource_type_and_name)
7392-
<< Slot.substr(0, 1) << VarTy
7393-
<< (unsigned)llvm::hlsl::ResourceClass::SRV;
7390+
if (Slot[0] == 't')
7391+
return;
73947392
break;
73957393
}
73967394
case llvm::hlsl::ResourceClass::UAV: {
7397-
if (Slot[0] != 'u')
7398-
S.Diag(ArgLoc, diag::err_hlsl_mismatching_register_resource_type_and_name)
7399-
<< Slot.substr(0, 1) << VarTy
7400-
<< (unsigned)llvm::hlsl::ResourceClass::UAV;
7395+
if (Slot[0] == 'u')
7396+
return;
74017397
break;
74027398
}
74037399
case llvm::hlsl::ResourceClass::CBuffer: {
7404-
if (Slot[0] != 'b')
7405-
S.Diag(ArgLoc, diag::err_hlsl_mismatching_register_resource_type_and_name)
7406-
<< Slot.substr(0, 1) << VarTy
7407-
<< (unsigned)llvm::hlsl::ResourceClass::CBuffer;
7400+
if (Slot[0] == 'b')
7401+
return;
74087402
break;
74097403
}
74107404
case llvm::hlsl::ResourceClass::TBuffer: {
7411-
if (Slot[0] != 't')
7412-
S.Diag(ArgLoc, diag::err_hlsl_mismatching_register_resource_type_and_name)
7413-
<< Slot.substr(0, 1) << VarTy
7414-
<< (unsigned)llvm::hlsl::ResourceClass::TBuffer;
7405+
if (Slot[0] == 't')
7406+
return;
74157407
break;
74167408
}
74177409
case llvm::hlsl::ResourceClass::Sampler: {
7418-
if (Slot[0] != 's')
7419-
S.Diag(ArgLoc, diag::err_hlsl_mismatching_register_resource_type_and_name)
7420-
<< Slot.substr(0, 1) << VarTy
7421-
<< (unsigned)llvm::hlsl::ResourceClass::Sampler;
7410+
if (Slot[0] == 's')
7411+
return;
74227412
break;
74237413
}
74247414
case llvm::hlsl::ResourceClass::Invalid: {
74257415
llvm_unreachable("Resource class should be valid.");
74267416
break;
74277417
}
74287418
}
7419+
S.Diag(ArgLoc, diag::err_hlsl_mismatching_register_resource_type_and_name)
7420+
<< Slot.substr(0, 1) << VarTy << (unsigned)DeclResourceClass;
74297421
}
74307422

74317423
static void handleHLSLResourceBindingAttr(Sema &S, Decl *D,

clang/test/SemaHLSL/resource_binding_attr_error_mismatch.hlsl

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.3-library -x hlsl -o - -fsyntax-only %s -verify
22

3-
// the below will cause an llvm unreachable, because RWBuffers don't have resource attributes yet
3+
44
// expected-error@+1 {{invalid register name prefix 'b' for register resource type 'RWBuffer' (expected 'u')}}
55
RWBuffer<int> a : register(b2, space1);
66

7-
// the below will cause an llvm unreachable, because RWBuffers don't have resource attributes yet
87
// expected-error@+1 {{invalid register name prefix 't' for register resource type 'RWBuffer' (expected 'u')}}
98
RWBuffer<int> b : register(t2, space1);
109

0 commit comments

Comments
 (0)