Skip to content

Commit 8d8d1ff

Browse files
committed
remove hlsl error to go with a more generic one
1 parent eb438b7 commit 8d8d1ff

File tree

4 files changed

+19
-17
lines changed

4 files changed

+19
-17
lines changed

clang/include/clang/Basic/DiagnosticSemaKinds.td

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12118,9 +12118,6 @@ def err_hlsl_param_qualifier_mismatch :
1211812118
def warn_hlsl_impcast_vector_truncation : Warning<
1211912119
"implicit conversion truncates vector: %0 to %1">, InGroup<Conversion>;
1212012120

12121-
def warn_hlsl_impcast_bitwidth_reduction : Warning<
12122-
"implicit conversion from larger type: %0 to smaller type %1, possible loss of data">, InGroup<Conversion>;
12123-
1212412121
// Layout randomization diagnostics.
1212512122
def err_non_designated_init_used : Error<
1212612123
"a randomized struct can only be initialized with a designated initializer">;

clang/lib/Sema/SemaChecking.cpp

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5235,14 +5235,10 @@ void CheckVectorFloatPromotion(Sema *S, ExprResult &source, QualType targetTy,
52355235
if (!vecElemT->isFloatingType() && targetTy->isFloatingType()) {
52365236
QualType floatVecTy = S->Context.getVectorType(
52375237
S->Context.FloatTy, vecTyTarget->getNumElements(), VectorKind::Generic);
5238-
int floatByteSize =
5239-
S->Context.getTypeSizeInChars(S->Context.FloatTy).getQuantity();
5240-
int vecElemByteSize = S->Context.getTypeSizeInChars(vecElemT).getQuantity();
5241-
if (vecElemByteSize > floatByteSize)
5242-
S->Diag(BuiltinLoc, diag::warn_hlsl_impcast_bitwidth_reduction)
5243-
<< source.get()->getType() << floatVecTy
5244-
<< source.get()->getSourceRange() << targetSrcRange;
52455238

5239+
S->Diag(BuiltinLoc, diag::warn_impcast_integer_float_precision)
5240+
<< source.get()->getType() << floatVecTy
5241+
<< source.get()->getSourceRange() << targetSrcRange;
52465242
source = S->SemaConvertVectorExpr(
52475243
source.get(), S->Context.CreateTypeSourceInfo(floatVecTy), BuiltinLoc,
52485244
source.get()->getBeginLoc());

clang/test/SemaHLSL/BuiltIns/dot-errors.hlsl

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// RUN: %clang_cc1 -std=hlsl2021 -finclude-default-header -x hlsl -triple \
2-
// RUN: dxil-pc-shadermodel6.3-library %s -fnative-half-type \
3-
// RUN: -emit-llvm -disable-llvm-passes -verify -verify-ignore-unexpected
2+
// RUN: dxil-pc-shadermodel6.3-library %s -fnative-half-type -emit-llvm \
3+
// RUN: -disable-llvm-passes -verify -verify-ignore-unexpected
44

55
float test_no_second_arg ( float2 p0) {
66
return __builtin_hlsl_dot ( p0 );
@@ -28,11 +28,6 @@ float test_dot_builtin_vector_size_mismatch ( float3 p0, float2 p1 ) {
2828
// expected-warning@-1 {{implicit conversion truncates vector: 'float3' (aka 'vector<float, 3>') to 'float2' (aka 'vector<float, 2>')}}
2929
}
3030

31-
float test_dot_builtin_vector_elem_size_reduction ( int64_t2 p0, float p1 ) {
32-
return __builtin_hlsl_dot ( p0, p1 );
33-
// expected-warning@-1 {{conversion from larger type: 'int64_t2' (aka 'vector<int64_t, 2>') to smaller type '__attribute__((__vector_size__(2 * sizeof(float)))) float' (vector of 2 'float' values), possible loss of data}}
34-
}
35-
3631
float test_dot_scalar_mismatch ( float p0, int p1 ) {
3732
return dot ( p0, p1 );
3833
// expected-error@-1 {{call to 'dot' is ambiguous}}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
// RUN: %clang_cc1 -std=hlsl2021 -finclude-default-header -x hlsl -triple \
2+
// RUN: dxil-pc-shadermodel6.3-library %s -fnative-half-type -emit-llvm \
3+
// RUN: -disable-llvm-passes -Wimplicit-int-float-conversion-verify -verify-ignore-unexpected
4+
5+
6+
float test_dot_builtin_vector_elem_size_reduction ( int64_t2 p0, float p1 ) {
7+
return __builtin_hlsl_dot ( p0, p1 );
8+
// expected-Warning@-1 {{implicit conversion from 'int64_t2' (aka 'vector<int64_t, 2>') to '__attribute__((__vector_size__(2 * sizeof(float)))) float' (vector of 2 'float' values) may lose precision}}
9+
}
10+
11+
float test_dot_builtin_int_vector_elem_size_reduction ( int2 p0, float p1 ) {
12+
return __builtin_hlsl_dot ( p0, p1 );
13+
// expected-Warning@-1 {{implicit conversion from 'int2' (aka 'vector<int, 2>') to '__attribute__((__vector_size__(2 * sizeof(float)))) float' (vector of 2 'float' values) may lose precision}}
14+
}

0 commit comments

Comments
 (0)