1 // Test the output from -module-file-info about C++20 Modules
2 // can reflect macros definitions correctly.
5 // RUN: split-file %s %t
7 // RUN: %clang_cc1 -std=c++20 -emit-header-unit -xc++-user-header %t/foo.h -o %t/foo.pcm
8 // RUN: %clang_cc1 -module-file-info %t/foo.pcm | FileCheck %t/foo.h
10 // RUN: %clang_cc1 -std=c++20 -emit-header-unit -xc++-user-header %t/include_foo.h -o %t/include_foo.pcm
11 // RUN: %clang_cc1 -module-file-info %t/include_foo.pcm | FileCheck %t/include_foo.h
13 // RUN: %clang_cc1 -std=c++20 -emit-header-unit -xc++-user-header -fmodule-file=%t/foo.pcm \
14 // RUN: %t/import_foo.h -o %t/import_foo.pcm
15 // RUN: %clang_cc1 -module-file-info %t/import_foo.pcm | FileCheck %t/import_foo.h
17 // RUN: %clang_cc1 -std=c++20 %t/named_module.cppm -emit-module-interface -o %t/M.pcm
18 // RUN: %clang_cc1 -module-file-info %t/M.pcm | FileCheck %t/named_module.cppm
20 // RUN: %clang_cc1 -std=c++20 %t/named_module.cppm -emit-reduced-module-interface -o %t/M.pcm
21 // RUN: %clang_cc1 -module-file-info %t/M.pcm | FileCheck %t/named_module.cppm
27 #define FUNC_Macro(X) (X+1)
32 #define CONDITIONAL_DEF
38 // CHECK: Macro Definitions:
39 // CHECK-DAG: REDEFINE
40 // CHECK-DAG: FUNC_Macro
41 // CHECK-DAG: CONSTANT
48 // CHECK: Macro Definitions:
49 // CHECK-DAG: CONSTANT
50 // CHECK-DAG: FUNC_Macro
57 // CHECK: Macro Definitions:
58 // CHECK-DAG: CONSTANT
59 // CHECK-DAG: FUNC_Macro
63 //--- named_module.cppm
68 // CHECK-NOT: Macro Definitions: