xref: /llvm-project/clang/test/Modules/unreached-static-entities.cppm (revision 5d4e072a253afac018e312d75290314bd2d03b30)
1*5d4e072aSChuanqi Xu// Test that the static function only used in non-inline functions won't get emitted
2*5d4e072aSChuanqi Xu// into the BMI.
3*5d4e072aSChuanqi Xu//
4*5d4e072aSChuanqi Xu// RUN: rm -rf %t
5*5d4e072aSChuanqi Xu// RUN: mkdir -p %t
6*5d4e072aSChuanqi Xu//
7*5d4e072aSChuanqi Xu// RUN: %clang_cc1 -std=c++20 %s -emit-reduced-module-interface -o %t/S.pcm
8*5d4e072aSChuanqi Xu// RUN: llvm-bcanalyzer --dump --disable-histogram --show-binary-blobs %t/S.pcm > %t/S.dump
9*5d4e072aSChuanqi Xu// RUN: cat %t/S.dump | FileCheck %s
10*5d4e072aSChuanqi Xu
11*5d4e072aSChuanqi Xuexport module S;
12*5d4e072aSChuanqi Xustatic int static_func() {
13*5d4e072aSChuanqi Xu    return 43;
14*5d4e072aSChuanqi Xu}
15*5d4e072aSChuanqi Xu
16*5d4e072aSChuanqi Xuexport int func() {
17*5d4e072aSChuanqi Xu    return static_func();
18*5d4e072aSChuanqi Xu}
19*5d4e072aSChuanqi Xu
20*5d4e072aSChuanqi Xu// CHECK: <DECL_FUNCTION
21*5d4e072aSChuanqi Xu// Checks that we won't see a second function
22*5d4e072aSChuanqi Xu// CHECK-NOT: <DECL_FUNCTION
23