xref: /llvm-project/clang/test/Modules/reduced-bmi-empty-module-purview-std.cppm (revision 7ec342ba16ca97206aa2ddd5b7ec0da063042e03)
1// Test that we won't write additional information from std namespace by default
2// into the Reduced BMI if the module purview is empty.
3//
4// RUN: rm -rf %t
5// RUN: mkdir -p %t
6// RUN: split-file %s %t
7//
8// RUN: %clang_cc1 -std=c++20 %t/A.cppm -emit-reduced-module-interface -o %t/A.pcm
9// RUN: llvm-bcanalyzer --dump --disable-histogram --show-binary-blobs %t/A.pcm > %t/A.dump
10// RUN: cat %t/A.dump | FileCheck %t/A.cppm
11
12//--- std.h
13namespace std {
14  typedef decltype(sizeof(0)) size_t;
15  enum class align_val_t : std::size_t {};
16
17  class bad_alloc { };
18}
19
20//--- A.cppm
21module;
22#include "std.h"
23export module A;
24
25// CHECK-NOT: <DECL_NAMESPACE
26// CHECK-NOT: <DECL_CONTEXT_LEXICAL
27// CHECK-NOT: <DELAYED_NAMESPACE_LEXICAL_VISIBLE_RECORD
28