[clang] [HLSL] Add empty struct test cases to `__builtin_hlsl_is_typed_resource_element_compatible` test file (PR #115045)
Chris B via cfe-commits
cfe-commits at lists.llvm.org
Fri Nov 8 13:11:59 PST 2024
================
@@ -2200,47 +2200,43 @@ static void BuildFlattenedTypeList(QualType BaseTy,
}
bool SemaHLSL::IsTypedResourceElementCompatible(clang::QualType QT) {
- if (QT.isNull())
+ // null and array types are not allowed.
+ if (QT.isNull() || QT->isArrayType())
return false;
- // check if the outer type was an array type
- if (QT->isArrayType())
+ // UDT types are not allowed
+ clang::QualType CanonicalType = QT.getCanonicalType();
+ if (CanonicalType->getAs<clang::RecordType>()) {
return false;
+ }
- llvm::SmallVector<QualType, 4> QTTypes;
- BuildFlattenedTypeList(QT, QTTypes);
+ // the only other valid builtin types are scalars or vectors
+ if (const BuiltinType *BT = CanonicalType->getAs<BuiltinType>()) {
----------------
llvm-beanz wrote:
Vectors aren't `BuitinType`, so this can probably be simplified. Something like:
```cpp
// All arithmetic and enumeration types are valid.
if (QT->isArithmeticType() || QT->isEnumeralType())
return true;
```
https://github.com/llvm/llvm-project/pull/115045
More information about the cfe-commits
mailing list