annotate clang/test/Modules/cxx20-hu-06.cpp @ 236:c4bab56944e8 llvm-original

LLVM 16
author kono
date Wed, 09 Nov 2022 17:45:10 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
236
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
1 // Test check that consuming -E -fdirectives-only output produces the expected
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
2 // header unit.
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
3
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
4 // RUN: rm -rf %t
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
5 // RUN: mkdir -p %t
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
6 // RUN: split-file %s %t
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
7 // RUN: cd %t
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
8
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
9 // RUN: %clang_cc1 -std=c++20 -E -fdirectives-only -xc++-user-header hu-01.h \
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
10 // RUN: -o hu-01.iih
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
11
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
12 // RUN: %clang_cc1 -std=c++20 -emit-header-unit \
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
13 // RUN: -xc++-user-header-cpp-output hu-01.iih -o hu-01.pcm
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
14
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
15 // RUN: %clang_cc1 -std=c++20 -emit-header-unit -xc++-user-header hu-02.h \
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
16 // RUN: -DFOO -fmodule-file=hu-01.pcm -o hu-02.pcm -Rmodule-import 2>&1 | \
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
17 // RUN: FileCheck --check-prefix=CHECK-IMP %s -DTDIR=%t
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
18
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
19 //--- hu-01.h
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
20 #ifndef __GUARD
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
21 #define __GUARD
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
22
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
23 int baz(int);
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
24 #define FORTYTWO 42
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
25
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
26 #define SHOULD_NOT_BE_DEFINED -1
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
27 #undef SHOULD_NOT_BE_DEFINED
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
28
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
29 #endif // __GUARD
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
30 // expected-no-diagnostics
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
31
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
32 //--- hu-02.h
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
33 export import "hu-01.h";
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
34 #if !defined(FORTYTWO) || FORTYTWO != 42
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
35 #error FORTYTWO missing in hu-02
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
36 #endif
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
37
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
38 #ifndef __GUARD
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
39 #error __GUARD missing in hu-02
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
40 #endif
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
41
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
42 #ifdef SHOULD_NOT_BE_DEFINED
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
43 #error SHOULD_NOT_BE_DEFINED is visible
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
44 #endif
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
45
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
46 // Make sure that we have not discarded macros from the builtin file.
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
47 #ifndef __cplusplus
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
48 #error we dropped a defined macro
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
49 #endif
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
50
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
51 #define KAP 6174
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
52
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
53 #ifdef FOO
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
54 #define FOO_BRANCH(X) (X) + 1
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
55 inline int foo(int x) {
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
56 if (x == FORTYTWO)
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
57 return FOO_BRANCH(x);
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
58 return FORTYTWO;
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
59 }
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
60 #else
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
61 #define BAR_BRANCH(X) (X) + 2
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
62 inline int bar(int x) {
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
63 if (x == FORTYTWO)
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
64 return BAR_BRANCH(x);
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
65 return FORTYTWO;
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
66 }
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
67 #endif
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
68 // CHECK-IMP: remark: importing module './hu-01.h' from 'hu-01.pcm'