// RUN: cir-opt %s --verify-roundtrip | FileCheck %s !u8i = !cir.int !rec_NeedsCtor = !cir.struct<"NeedsCtor" padded {!u8i}> !rec_NeedsDtor = !cir.struct<"NeedsDtor" padded {!u8i}> !rec_NeedsCtorDtor = !cir.struct<"NeedsCtorDtor" padded {!u8i}> module attributes {cir.triple = "x86_64-unknown-linux-gnu"} { cir.func private @_ZN9NeedsCtorC1Ev(!cir.ptr) cir.global external @needsCtor = ctor : !rec_NeedsCtor { %0 = cir.get_global @needsCtor : !cir.ptr cir.call @_ZN9NeedsCtorC1Ev(%0) : (!cir.ptr) -> () } // CHECK: cir.global external @needsCtor = ctor : !rec_NeedsCtor { // CHECK: %0 = cir.get_global @needsCtor : !cir.ptr // CHECK: cir.call @_ZN9NeedsCtorC1Ev(%0) : (!cir.ptr) -> () // CHECK: } cir.func private @_ZN9NeedsDtorD1Ev(!cir.ptr) cir.global external dso_local @needsDtor = #cir.zero : !rec_NeedsDtor dtor { %0 = cir.get_global @needsDtor : !cir.ptr cir.call @_ZN9NeedsDtorD1Ev(%0) : (!cir.ptr) -> () } // CHECK: cir.global external dso_local @needsDtor = #cir.zero : !rec_NeedsDtor dtor { // CHECK: %0 = cir.get_global @needsDtor : !cir.ptr // CHECK: cir.call @_ZN9NeedsDtorD1Ev(%0) : (!cir.ptr) -> () // CHECK: } cir.func private @_ZN13NeedsCtorDtorC1Ev(!cir.ptr) cir.func private @_ZN13NeedsCtorDtorD1Ev(!cir.ptr) cir.global external dso_local @needsCtorDtor = ctor : !rec_NeedsCtorDtor { %0 = cir.get_global @needsCtorDtor : !cir.ptr cir.call @_ZN13NeedsCtorDtorC1Ev(%0) : (!cir.ptr) -> () } dtor { %0 = cir.get_global @needsCtorDtor : !cir.ptr cir.call @_ZN13NeedsCtorDtorD1Ev(%0) : (!cir.ptr) -> () } // CHECK: cir.func private @_ZN13NeedsCtorDtorC1Ev(!cir.ptr) // CHECK: cir.func private @_ZN13NeedsCtorDtorD1Ev(!cir.ptr) // CHECK: cir.global external dso_local @needsCtorDtor = ctor : !rec_NeedsCtorDtor { // CHECK: %0 = cir.get_global @needsCtorDtor : !cir.ptr // CHECK: cir.call @_ZN13NeedsCtorDtorC1Ev(%0) : (!cir.ptr) -> () // CHECK: } dtor { // CHECK: %0 = cir.get_global @needsCtorDtor : !cir.ptr // CHECK: cir.call @_ZN13NeedsCtorDtorD1Ev(%0) : (!cir.ptr) -> () // CHECK: } }