[clang] [HLSL] Remove support for constructors for user defined structs (PR #190089)

Sarah Spall via cfe-commits cfe-commits at lists.llvm.org
Mon Apr 13 09:47:18 PDT 2026


================
@@ -158,7 +158,7 @@ struct Derived : BFields {
 // CHECK-LABEL: call8
 // CHECK: [[A:%.*]] = alloca [4 x i32], align 4
 // CHECK-NEXT: [[Tmp:%.*]] = alloca %struct.Derived, align 1
-// CHECK-NEXT: call void @llvm.memcpy.p0.p0.i32(ptr align 1 [[Tmp]], ptr align 1 %D, i32 19, i1 false)
+// CHECK: call void @llvm.memcpy.p0.p0.i32(ptr align 1 [[Tmp]], ptr align 1 %D, i32 19, i1 false)
----------------
spall wrote:

I was just omitting an extra alloca and store which are being generated for debug information.
https://github.com/llvm/llvm-project/blob/1b2ccc16ce90b52ebd1f1629e5a95bc4203c1dc1/clang/lib/CodeGen/CGDecl.cpp#L2724
```
 %D.indirect_addr = alloca ptr, align 4
  %A = alloca [4 x i32], align 4
  %agg-temp = alloca %struct.Derived, align 1
  store ptr %D, ptr %D.indirect_addr, align 4
  call void @llvm.memcpy.p0.p0.i32(ptr align 1 %agg-temp, ptr align 1 %D, i32 19, i1 false)
```

https://github.com/llvm/llvm-project/pull/190089


More information about the cfe-commits mailing list