xref: /llvm-project/clang/test/Modules/no-implicit-declarations.cppm (revision 1ecc5ae13b9061cfb37ef0c409c8a4fc4bad42c9)
1// RUN: rm -rf %t
2// RUN: mkdir %t
3//
4// RUN: %clang_cc1 -std=c++20 %s -emit-module-interface -o %t/a.pcm
5// RUN: llvm-bcanalyzer --dump --disable-histogram --show-binary-blobs %t/a.pcm > %t/a.dump
6// RUN: cat %t/a.dump | FileCheck %s
7//
8// RUN: %clang_cc1 -std=c++20 %s -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 %s
11
12export module a;
13// Contain something at least to make sure the compiler won't
14// optimize this out.
15export int a = 43;
16
17// CHECK:  <DECLTYPES_BLOCK
18// CHECK-NOT: <DECL_TYPEDEF
19// CHECK:    <TYPE_TYPEDEF
20// CHECK:    <DECL_CONTEXT_LEXICAL
21// CHECK:    <DECL_EXPORT
22// CHECK:    <TYPE_RECORD
23// CHECK:    <DECL_VAR
24// CHECK:    <EXPR_INTEGER_LITERAL
25// CHECK:    <STMT_STOP
26// CHECK:  </DECLTYPES_BLOCK>
27