Skip to content

Commit f37e0f8

Browse files
committed
consolidate the error messages.
1 parent ea1ac37 commit f37e0f8

File tree

4 files changed

+11
-19
lines changed

4 files changed

+11
-19
lines changed

clang/include/clang/Basic/DiagnosticSemaKinds.td

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12919,16 +12919,9 @@ def err_spirv_enum_not_int : Error<
1291912919
def err_spirv_enum_not_valid : Error<
1292012920
"invalid value for %select{storage class}0 argument">;
1292112921

12922-
def err_specialization_const_lit_init
12923-
: Error<"variable with 'vk::constant_id' attribute must be initialized by a int/float/enum/bool literal.">;
12924-
def err_specialization_const_missing_initializer
12925-
: Error<
12926-
"variable with 'vk::constant_id' attribute must have an initializer">;
12927-
def err_specialization_const_missing_const
12928-
: Error<"variable with 'vk::constant_id' attribute must be const">;
12929-
def err_specialization_const_is_not_int_or_float
12930-
: Error<"variable with 'vk::constant_id' attribute must be an enum, bool, "
12931-
"integer, or floating point value">;
12922+
def err_specialization_const
12923+
: Error<"variable with 'vk::constant_id' attribute must be a const "
12924+
"int/float/enum/bool and be initialized with a literal">;
1293212925

1293312926
// errors of expect.with.probability
1293412927
def err_probability_not_constant_float : Error<

clang/lib/Sema/SemaDecl.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14223,8 +14223,7 @@ void Sema::ActOnUninitializedDecl(Decl *RealDecl) {
1422314223

1422414224
// HLSL variable with the `vk::constant_id` attribute must be initialized.
1422514225
if (!Var->isInvalidDecl() && Var->hasAttr<HLSLVkConstantIdAttr>()) {
14226-
Diag(Var->getLocation(),
14227-
diag::err_specialization_const_missing_initializer);
14226+
Diag(Var->getLocation(), diag::err_specialization_const);
1422814227
Var->setInvalidDecl();
1422914228
return;
1423014229
}

clang/lib/Sema/SemaHLSL.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -654,12 +654,12 @@ SemaHLSL::mergeVkConstantIdAttr(Decl *D, const AttributeCommonInfo &AL,
654654
auto *VD = cast<VarDecl>(D);
655655

656656
if (getSpecConstBuiltinId(VD->getType()) == Builtin::NotBuiltin) {
657-
Diag(VD->getLocation(), diag::err_specialization_const_is_not_int_or_float);
657+
Diag(VD->getLocation(), diag::err_specialization_const);
658658
return nullptr;
659659
}
660660

661661
if (!VD->getType().isConstQualified()) {
662-
Diag(VD->getLocation(), diag::err_specialization_const_missing_const);
662+
Diag(VD->getLocation(), diag::err_specialization_const);
663663
return nullptr;
664664
}
665665

@@ -3735,7 +3735,7 @@ bool SemaHLSL::handleInitialization(VarDecl *VDecl, Expr *&Init) {
37353735

37363736
APValue InitValue;
37373737
if (!Init->isCXX11ConstantExpr(Context, &InitValue)) {
3738-
Diag(VDecl->getLocation(), diag::err_specialization_const_lit_init);
3738+
Diag(VDecl->getLocation(), diag::err_specialization_const);
37393739
VDecl->setInvalidDecl();
37403740
return false;
37413741
}

clang/test/SemaHLSL/vk.spec-constant.error.hlsl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,23 +8,23 @@
88
const bool sc0 = true;
99

1010
#ifdef __spirv__
11-
// expected-error@+2{{variable with 'vk::constant_id' attribute cannot have an initializer that is not a literal}}
11+
// expected-error@+2{{variable with 'vk::constant_id' attribute must be a const int/float/enum/bool and be initialized with a literal}}
1212
[[vk::constant_id(1)]]
1313
const bool sc1 = sc0; // error
1414

1515
// expected-warning@+1{{'constant_id' attribute only applies to external global variables}}
1616
[[vk::constant_id(2)]]
1717
static const bool sc2 = false; // error
1818

19-
// expected-error@+2{{variable with 'vk::constant_id' attribute must have an initializer}}
19+
// expected-error@+2{{variable with 'vk::constant_id' attribute must be a const int/float/enum/bool and be initialized with a literal}}
2020
[[vk::constant_id(3)]]
2121
const bool sc3; // error
2222

23-
// expected-error@+2{{variable with 'vk::constant_id' attribute must be const}}
23+
// expected-error@+2{{variable with 'vk::constant_id' attribute must be a const int/float/enum/bool and be initialized with a literal}}
2424
[[vk::constant_id(4)]]
2525
bool sc4 = false; // error
2626

27-
// expected-error@+2{{variable with 'vk::constant_id' attribute must be an enum, bool, integer, or floating point value}}
27+
// expected-error@+2{{variable with 'vk::constant_id' attribute must be a const int/float/enum/bool and be initialized with a literal}}
2828
[[vk::constant_id(5)]]
2929
const int2 sc5 = {0,0}; // error
3030

0 commit comments

Comments
 (0)