// RUN: cir-opt %s --verify-roundtrip | FileCheck %s !u8i = !cir.int !u64i = !cir.int !rec_S = !cir.struct<"S" padded {!u8i}> module { cir.func private @_ZN1SC1Ev(!cir.ptr) cir.func dso_local @_Z3foov() { %0 = cir.alloca !cir.array, !cir.ptr>, ["s", init] {alignment = 16 : i64} cir.array.ctor %0 : !cir.ptr> { ^bb0(%arg0: !cir.ptr): cir.call @_ZN1SC1Ev(%arg0) : (!cir.ptr) -> () } cir.return } // CHECK: cir.func private @_ZN1SC1Ev(!cir.ptr) // CHECK: cir.func dso_local @_Z3foov() { // CHECK: %0 = cir.alloca !cir.array, !cir.ptr>, ["s", init] {alignment = 16 : i64} // CHECK: cir.array.ctor %0 : !cir.ptr> { // CHECK: ^bb0(%arg0: !cir.ptr): // CHECK: cir.call @_ZN1SC1Ev(%arg0) : (!cir.ptr) -> () // CHECK: } // CHECK: cir.return // CHECK: } cir.func dso_local @dynamic_array_ctor(%p: !cir.ptr, %n: !u64i) { cir.array.ctor %p, %n : !cir.ptr, !u64i { ^bb0(%e: !cir.ptr): cir.call @_ZN1SC1Ev(%e) : (!cir.ptr) -> () } cir.return } // CHECK: cir.func dso_local @dynamic_array_ctor // CHECK: cir.array.ctor %{{.*}}, %{{.*}} : !cir.ptr, !u64i { // CHECK: ^bb0(%{{.*}}: !cir.ptr): // CHECK: cir.call @_ZN1SC1Ev(%{{.*}}) : (!cir.ptr) -> () // CHECK: } // CHECK: cir.return // CHECK: } }