49 lines · plain
1// RUN: cir-opt %s --verify-roundtrip | FileCheck %s2 3!u8i = !cir.int<u, 8>4 5!rec_NeedsCtor = !cir.record<struct "NeedsCtor" padded {!u8i}>6!rec_NeedsDtor = !cir.record<struct "NeedsDtor" padded {!u8i}>7!rec_NeedsCtorDtor = !cir.record<struct "NeedsCtorDtor" padded {!u8i}>8 9module attributes {cir.triple = "x86_64-unknown-linux-gnu"} {10 cir.func private @_ZN9NeedsCtorC1Ev(!cir.ptr<!rec_NeedsCtor>)11 cir.global external @needsCtor = ctor : !rec_NeedsCtor {12 %0 = cir.get_global @needsCtor : !cir.ptr<!rec_NeedsCtor>13 cir.call @_ZN9NeedsCtorC1Ev(%0) : (!cir.ptr<!rec_NeedsCtor>) -> ()14 }15 // CHECK: cir.global external @needsCtor = ctor : !rec_NeedsCtor {16 // CHECK: %0 = cir.get_global @needsCtor : !cir.ptr<!rec_NeedsCtor>17 // CHECK: cir.call @_ZN9NeedsCtorC1Ev(%0) : (!cir.ptr<!rec_NeedsCtor>) -> ()18 // CHECK: }19 20 cir.func private @_ZN9NeedsDtorD1Ev(!cir.ptr<!rec_NeedsDtor>)21 cir.global external dso_local @needsDtor = #cir.zero : !rec_NeedsDtor dtor {22 %0 = cir.get_global @needsDtor : !cir.ptr<!rec_NeedsDtor>23 cir.call @_ZN9NeedsDtorD1Ev(%0) : (!cir.ptr<!rec_NeedsDtor>) -> ()24 }25 // CHECK: cir.global external dso_local @needsDtor = #cir.zero : !rec_NeedsDtor dtor {26 // CHECK: %0 = cir.get_global @needsDtor : !cir.ptr<!rec_NeedsDtor>27 // CHECK: cir.call @_ZN9NeedsDtorD1Ev(%0) : (!cir.ptr<!rec_NeedsDtor>) -> ()28 // CHECK: }29 30 cir.func private @_ZN13NeedsCtorDtorC1Ev(!cir.ptr<!rec_NeedsCtorDtor>)31 cir.func private @_ZN13NeedsCtorDtorD1Ev(!cir.ptr<!rec_NeedsCtorDtor>)32 cir.global external dso_local @needsCtorDtor = ctor : !rec_NeedsCtorDtor {33 %0 = cir.get_global @needsCtorDtor : !cir.ptr<!rec_NeedsCtorDtor>34 cir.call @_ZN13NeedsCtorDtorC1Ev(%0) : (!cir.ptr<!rec_NeedsCtorDtor>) -> ()35 } dtor {36 %0 = cir.get_global @needsCtorDtor : !cir.ptr<!rec_NeedsCtorDtor>37 cir.call @_ZN13NeedsCtorDtorD1Ev(%0) : (!cir.ptr<!rec_NeedsCtorDtor>) -> ()38 }39 // CHECK: cir.func private @_ZN13NeedsCtorDtorC1Ev(!cir.ptr<!rec_NeedsCtorDtor>)40 // CHECK: cir.func private @_ZN13NeedsCtorDtorD1Ev(!cir.ptr<!rec_NeedsCtorDtor>)41 // CHECK: cir.global external dso_local @needsCtorDtor = ctor : !rec_NeedsCtorDtor {42 // CHECK: %0 = cir.get_global @needsCtorDtor : !cir.ptr<!rec_NeedsCtorDtor>43 // CHECK: cir.call @_ZN13NeedsCtorDtorC1Ev(%0) : (!cir.ptr<!rec_NeedsCtorDtor>) -> ()44 // CHECK: } dtor {45 // CHECK: %0 = cir.get_global @needsCtorDtor : !cir.ptr<!rec_NeedsCtorDtor>46 // CHECK: cir.call @_ZN13NeedsCtorDtorD1Ev(%0) : (!cir.ptr<!rec_NeedsCtorDtor>) -> ()47 // CHECK: }48}49