// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -fclangir -emit-cir %s -o %t.cir // RUN: FileCheck --input-file=%t.cir %s --check-prefix=CIR --implicit-check-not=externNotCalled \ // RUN: --implicit-check-not=internalNotCalled --implicit-check-not=inlineNotCalled extern int externCalled(); extern int externNotCalled(); namespace { int internalCalled() { return 1; } int internalNotCalled() { return 2; } } struct S { int inlineCalled() { return 3; } int inlineNotCalled() { return 4; } }; void use() { S s; externCalled(); internalCalled(); s.inlineCalled(); } // CIR: cir.func{{.*}} @_Z12externCalledv // This shouldn't have a body. // CIR-NOT: cir.return // CIR: cir.func{{.*}} @_ZN12_GLOBAL__N_114internalCalledEv // CIR: %[[ONE:.*]] = cir.const #cir.int<1> // CIR: cir.store %[[ONE]], %[[RET_ADDR:.*]] // CIR: cir.func{{.*}} @_ZN1S12inlineCalledEv // CIR: %[[THIS:.*]] = cir.alloca !cir.ptr, !cir.ptr>, ["this", init] // CIR: %[[THREE:.*]] = cir.const #cir.int<3> // CIR: cir.store %[[THREE]], %[[RET_ADDR:.*]] // CIR: cir.func{{.*}} @_Z3usev()