// RUN: cir-opt %s --verify-roundtrip | FileCheck %s !s32i = !cir.int module { // Test static_local_guard attribute on global and static_local on get_global cir.global "private" internal static_local_guard<"_ZGVZ1fvE1x"> @_ZZ1fvE1x : !s32i // CHECK: cir.global "private" internal static_local_guard<"_ZGVZ1fvE1x"> @_ZZ1fvE1x : !s32i cir.global "private" internal static_local_guard<"_HasInitGuard"> @_HasInit : !s32i // CHECK: cir.global "private" internal static_local_guard<"_HasInitGuard"> @_HasInit : !s32i cir.global "private" internal static_local_guard<"_HasInitGuard2"> @_HasInit2 : !s32i // CHECK: cir.global "private" internal static_local_guard<"_HasInitGuard2"> @_HasInit2 : !s32i cir.global "private" internal static_local_guard<"_HasInitGuard3"> @_HasInit3 : !s32i // CHECK: cir.global "private" internal static_local_guard<"_HasInitGuard3"> @_HasInit3 : !s32i cir.global "private" internal static_local_guard<"_HasInitGuard4"> @_HasInit4 : !s32i // CHECK: cir.global "private" internal static_local_guard<"_HasInitGuard4"> @_HasInit4 : !s32i cir.func @test_static_local() { %0 = cir.get_global static_local @_ZZ1fvE1x : !cir.ptr cir.return } // CHECK: cir.func @test_static_local() // CHECK: %{{.*}} = cir.get_global static_local @_ZZ1fvE1x : !cir.ptr // CHECK: cir.return cir.func @test_static_local2() { %0 = cir.get_global static_local @_HasInit : !cir.ptr cir.local_init static_local @_HasInit ctor { cir.yield } %1 = cir.get_global static_local @_HasInit2 : !cir.ptr cir.local_init static_local @_HasInit2 dtor { cir.yield } cir.scope { %2 = cir.get_global static_local @_HasInit3 : !cir.ptr cir.local_init static_local @_HasInit3 ctor { cir.yield } dtor { cir.yield } } cir.return } // CHECK: cir.func @test_static_local2() // CHECK: %{{.*}} = cir.get_global static_local @_HasInit : !cir.ptr // CHECK: cir.local_init static_local @_HasInit ctor { // CHECK: cir.yield // CHECK: } // CHECK: %{{.*}} = cir.get_global static_local @_HasInit2 : !cir.ptr // CHECK: cir.local_init static_local @_HasInit2 dtor { // CHECK: cir.yield // CHECK: } // CHECK: cir.scope { // CHECK: %{{.*}} = cir.get_global static_local @_HasInit3 : !cir.ptr // CHECK: cir.local_init static_local @_HasInit3 ctor { // CHECK: cir.yield // CHECK: } dtor { // CHECK: cir.yield // CHECK: } // CHECK: } // CHECK: cir.return }