[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