1 // Test that we won't write additional information into the Reduced BMI if the
2 // module purview is empty.
6 // RUN: split-file %s %t
8 // RUN: %clang_cc1 -std=c++20 %t/M.cppm -emit-reduced-module-interface -o %t/M.pcm
9 // RUN: %clang_cc1 -std=c++20 %t/A.cppm -emit-reduced-module-interface -o %t/A.pcm \
10 // RUN: -fmodule-file=M=%t/M.pcm
11 // RUN: llvm-bcanalyzer --dump --disable-histogram --show-binary-blobs %t/A.pcm > %t/A.dump
12 // RUN: cat %t/A.dump | FileCheck %t/A.cppm
14 // RUN: %clang_cc1 -std=c++20 %t/A1.cppm -emit-reduced-module-interface -o %t/A1.pcm \
15 // RUN: -fmodule-file=M=%t/M.pcm
16 // RUN: llvm-bcanalyzer --dump --disable-histogram --show-binary-blobs %t/A1.pcm > %t/A1.dump
17 // RUN: cat %t/A1.dump | FileCheck %t/A1.cppm
26 extern template class A<short>;
28 inline A<int> a() { return A<int>(); }
32 auto _av_1 = _av_<int>;
33 auto _av_2 = _av_<double>;
40 void func(A<int>, ...) {
85 // CHECK-NOT: <DECL_CXX_RECORD
86 // CHECK-NOT: <DECL_UPDATE_OFFSETS
94 // CHECK-NOT: <DECL_CXX_RECORD
95 // CHECK-NOT: <DECL_UPDATE_OFFSETS