Skip to content

Commit a8fae57

Browse files
committed
remove require complete type, update tests
1 parent fa8d50e commit a8fae57

File tree

4 files changed

+11
-22
lines changed

4 files changed

+11
-22
lines changed

clang/lib/Sema/SemaExprCXX.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5720,8 +5720,7 @@ static bool EvaluateUnaryTypeTrait(Sema &Self, TypeTrait UTT,
57205720
case UTT_IsTypedResourceElementCompatible:
57215721
assert(Self.getLangOpts().HLSL &&
57225722
"typed resource element compatible types are an HLSL-only feature");
5723-
if (Self.RequireCompleteType(TInfo->getTypeLoc().getBeginLoc(), T,
5724-
diag::err_incomplete_type))
5723+
if (T->isIncompleteType())
57255724
return false;
57265725

57275726
return Self.HLSL().IsTypedResourceElementCompatible(T);

clang/test/SemaHLSL/BuiltIns/RWBuffers.hlsl

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -48,18 +48,14 @@ RWBuffer<s> r6;
4848
// expected-note@*:* {{because '__builtin_hlsl_is_typed_resource_element_compatible(Empty)' evaluated to false}}
4949
RWBuffer<Empty> r7;
5050

51-
/* TODO: fix issue with incomplete type
52-
// error@+4 {{constraints not satisfied for class template 'RWBuffer'}}
53-
// note@*:* {{template declaration from hidden source: template <typename element_type> requires __is_typed_resource_element_compatible<element_type> class RWBuffer}}
54-
// note@*:* {{because 'TemplatedBuffer<int>' does not satisfy '__is_typed_resource_element_compatible'}}
55-
// note@*:* {{because '__builtin_hlsl_is_typed_resource_element_compatible(TemplatedBuffer<int>)' evaluated to false}}
51+
// expected-error@+3 {{constraints not satisfied for class template 'RWBuffer'}}
52+
// expected-note@*:* {{because 'TemplatedBuffer<int>' does not satisfy '__is_typed_resource_element_compatible'}}
53+
// expected-note@*:* {{because '__builtin_hlsl_is_typed_resource_element_compatible(TemplatedBuffer<int>)' evaluated to false}}
5654
RWBuffer<TemplatedBuffer<int> > r8;
57-
// error@+4 {{constraints not satisfied for class template 'RWBuffer'}}
58-
// note@*:* {{template declaration from hidden source: template <typename element_type> requires __is_typed_resource_element_compatible<element_type> class RWBuffer}}
59-
// note@*:* {{because 'TemplatedVector<int>' does not satisfy '__is_typed_resource_element_compatible'}}
60-
// note@*:* {{because '__builtin_hlsl_is_typed_resource_element_compatible(TemplatedVector<int>)' evaluated to false}}
55+
// expected-error@+3 {{constraints not satisfied for class template 'RWBuffer'}}
56+
// expected-note@*:* {{because 'TemplatedVector<int>' does not satisfy '__is_typed_resource_element_compatible'}}
57+
// expected-note@*:* {{because '__builtin_hlsl_is_typed_resource_element_compatible(TemplatedVector<int>)' evaluated to false}}
6158
RWBuffer<TemplatedVector<int> > r9;
62-
*/
6359

6460
// arrays not allowed
6561
// expected-error@+3 {{constraints not satisfied for class template 'RWBuffer'}}

clang/test/SemaHLSL/Types/Traits/IsTypedResourceElementCompatible.hlsl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@ _Static_assert(__builtin_hlsl_is_typed_resource_element_compatible(double2), "")
1111
_Static_assert(!__builtin_hlsl_is_typed_resource_element_compatible(RWBuffer<int>), "");
1212
_Static_assert(!__builtin_hlsl_is_typed_resource_element_compatible(__hlsl_resource_t), "");
1313

14+
struct notComplete;
15+
_Static_assert(!__builtin_hlsl_is_typed_resource_element_compatible(notComplete), "");
16+
17+
1418
struct s {
1519
int x;
1620
};

clang/test/SemaHLSL/Types/Traits/IsTypedResourceElementCompatibleErrors.hlsl

Lines changed: 0 additions & 10 deletions
This file was deleted.

0 commit comments

Comments
 (0)