================
@@ -4763,6 +4797,19 @@ bool SemaHLSL::transformInitList(const InitializedEntity
&Entity,
if (ExpectedSize == 0 && ActualSize == 0)
return true;
+ // Reject empty initializer if *any* incomplete array exists structurally
+ if (ActualSize == 0 && containsIncompleteArrayType(Entity.getType())) {
+ QualType InitTy = Entity.getType().getNonReferenceType();
+ if (InitTy.hasAddressSpace())
+ InitTy = SemaRef.getASTContext().removeAddrSpaceQualType(InitTy);
+
+ SemaRef.Diag(Init->getBeginLoc(),
diag::err_hlsl_incorrect_num_initializers)
+ << /*TooManyOrFew=*/(int)(ExpectedSize < ActualSize) << InitTy
+ << /*ExpectedSize=*/ExpectedSize << /*ActualSize=*/ActualSize;
+ return false;
+ }
+
+ // Only after validating legality do we infer size
----------------
tex3d wrote:
Nit, punctuation:
```suggestion
// Only after validating legality, do we infer size.
```
https://github.com/llvm/llvm-project/pull/176075
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits