[clang] [CIR] Add support for array constructors (PR #149142)

Morris Hafner via cfe-commits cfe-commits at lists.llvm.org
Thu Jul 17 07:11:53 PDT 2025


================
@@ -0,0 +1,70 @@
+// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -Wno-unused-value -fclangir -emit-cir %s -o %t.cir
+// RUN: FileCheck --input-file=%t.cir %s -check-prefix=CIR
+// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -Wno-unused-value -fclangir -emit-llvm %s -o %t-cir.ll
+// RUN: FileCheck --input-file=%t-cir.ll %s -check-prefix=LLVM
+// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -Wno-unused-value -emit-llvm %s -o %t.ll
+// RUN: FileCheck --input-file=%t.ll %s -check-prefix=OGCG
+
+struct S {
+    S();
+};
+
+void foo() {
+    S s[42];
+}
+
+// CIR: cir.func dso_local @_Z3foov()
----------------
mmha wrote:

At the moment LoweringPrepare is run unconditionally. I could add an option but is there an easier way to do this?

Other than that I have added a test in `clang/test/CIR/IR/array-ctor.cir` that ensures CIR containing `cir.array.ctor` remains identical.

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


More information about the cfe-commits mailing list