[clang] [Sema][HLSL] Reject empty initializer lists for LHS containing an incomplete array. (PR #176075)
Tex Riddell via cfe-commits
cfe-commits at lists.llvm.org
Fri Jan 16 15:37:07 PST 2026
================
@@ -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
More information about the cfe-commits
mailing list