xref: /minix3/external/bsd/llvm/dist/clang/test/Frontend/rewrite-includes.c (revision 0a6a1f1d05b60e214de2f05a7310ddd1f0e590e7)
1f4a2713aSLionel Sambuc // RUN: not %clang_cc1 -verify -E -frewrite-includes -DFIRST -I %S/Inputs %s -o - | FileCheck -strict-whitespace %s
2f4a2713aSLionel Sambuc // RUN: not %clang_cc1 -verify -E -frewrite-includes -P -DFIRST -I %S/Inputs %s -o - | FileCheck -check-prefix=CHECKNL -strict-whitespace %s
3f4a2713aSLionel Sambuc // STARTCOMPARE
4f4a2713aSLionel Sambuc #define A(a,b) a ## b
5f4a2713aSLionel Sambuc A(1,2)
6f4a2713aSLionel Sambuc #include "rewrite-includes1.h"
7f4a2713aSLionel Sambuc #ifdef FIRST
8f4a2713aSLionel Sambuc #define HEADER "rewrite-includes3.h"
9f4a2713aSLionel Sambuc #include HEADER
10f4a2713aSLionel Sambuc #else
11f4a2713aSLionel Sambuc #include "rewrite-includes4.h"
12f4a2713aSLionel Sambuc #endif
13f4a2713aSLionel Sambuc   // indented
14f4a2713aSLionel Sambuc #/**/include /**/ "rewrite-includes5.h" /**/ \
15f4a2713aSLionel Sambuc 
16f4a2713aSLionel Sambuc #include "rewrite-includes6.h" // comment
17f4a2713aSLionel Sambuc 
18f4a2713aSLionel Sambuc #include "rewrite-includes6.h" /* comment
19f4a2713aSLionel Sambuc                                   continues */
20f4a2713aSLionel Sambuc #include "rewrite-includes7.h"
21f4a2713aSLionel Sambuc #include "rewrite-includes7.h"
22f4a2713aSLionel Sambuc #include "rewrite-includes8.h"
23f4a2713aSLionel Sambuc // ENDCOMPARE
24*0a6a1f1dSLionel Sambuc // CHECK: {{^}}# 1 "{{.*}}rewrite-includes.c"{{$}}
25f4a2713aSLionel Sambuc // CHECK: {{^}}// STARTCOMPARE{{$}}
26f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}#define A(a,b) a ## b{{$}}
27f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}A(1,2){{$}}
28f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}#if 0 /* expanded by -frewrite-includes */{{$}}
29f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}#include "rewrite-includes1.h"{{$}}
30f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}#endif /* expanded by -frewrite-includes */{{$}}
31*0a6a1f1dSLionel Sambuc // CHECK-NEXT: {{^}}# 6 "{{.*}}rewrite-includes.c"{{$}}
32f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}# 1 "{{.*[/\\]Inputs(/|\\\\)}}rewrite-includes1.h" 1{{$}}
33f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}#if 0 /* expanded by -frewrite-includes */{{$}}
34f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}#pragma clang system_header{{$}}
35f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}#endif /* expanded by -frewrite-includes */{{$}}
36f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}# 2 "{{.*[/\\]Inputs(/|\\\\)}}rewrite-includes1.h" 3{{$}}
37f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}included_line1{{$}}
38f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}#if 0 /* expanded by -frewrite-includes */{{$}}
39f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}#include "rewrite-includes2.h"{{$}}
40f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}#endif /* expanded by -frewrite-includes */{{$}}
41*0a6a1f1dSLionel Sambuc // CHECK-NEXT: {{^}}# 3 "{{.*[/\\]Inputs(/|\\\\)}}rewrite-includes1.h" 3{{$}}
42f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}# 1 "{{.*[/\\]Inputs(/|\\\\)}}rewrite-includes2.h" 1 3{{$}}
43f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}included_line2{{$}}
44f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}# 4 "{{.*[/\\]Inputs(/|\\\\)}}rewrite-includes1.h" 2 3{{$}}
45f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}# 7 "{{.*}}rewrite-includes.c" 2{{$}}
46f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}#ifdef FIRST{{$}}
47f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}#define HEADER "rewrite-includes3.h"{{$}}
48f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}#if 0 /* expanded by -frewrite-includes */{{$}}
49f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}#include HEADER{{$}}
50f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}#endif /* expanded by -frewrite-includes */{{$}}
51*0a6a1f1dSLionel Sambuc // CHECK-NEXT: {{^}}# 9 "{{.*}}rewrite-includes.c"{{$}}
52f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}# 1 "{{.*[/\\]Inputs(/|\\\\)}}rewrite-includes3.h" 1{{$}}
53f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}included_line3{{$}}
54f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}# 10 "{{.*}}rewrite-includes.c" 2{{$}}
55f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}#else{{$}}
56f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}# 11 "{{.*}}rewrite-includes.c"{{$}}
57f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}#if 0 /* expanded by -frewrite-includes */{{$}}
58f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}#include "rewrite-includes4.h"{{$}}
59f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}#endif /* expanded by -frewrite-includes */{{$}}
60*0a6a1f1dSLionel Sambuc // CHECK-NEXT: {{^}}# 11 "{{.*}}rewrite-includes.c"{{$}}
61f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}# 12 "{{.*}}rewrite-includes.c"{{$}}
62f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}#endif{{$}}
63f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}# 13 "{{.*}}rewrite-includes.c"{{$}}
64f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}  // indented{{$}}
65f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}#if 0 /* expanded by -frewrite-includes */{{$}}
66f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}#/**/include /**/ "rewrite-includes5.h" /**/ {{\\}}{{$}}
67f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}} {{$}}
68f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}#endif /* expanded by -frewrite-includes */{{$}}
69*0a6a1f1dSLionel Sambuc // CHECK-NEXT: {{^}}# 15 "{{.*}}rewrite-includes.c"{{$}}
70f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}# 1 "{{.*[/\\]Inputs(/|\\\\)}}rewrite-includes5.h" 1{{$}}
71f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}included_line5{{$}}
72f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}# 16 "{{.*}}rewrite-includes.c" 2{{$}}
73f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}#if 0 /* expanded by -frewrite-includes */{{$}}
74f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}#include "rewrite-includes6.h" // comment{{$}}
75f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}#endif /* expanded by -frewrite-includes */{{$}}
76*0a6a1f1dSLionel Sambuc // CHECK-NEXT: {{^}}# 16 "{{.*}}rewrite-includes.c"{{$}}
77f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}# 1 "{{.*[/\\]Inputs(/|\\\\)}}rewrite-includes6.h" 1{{$}}
78f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}#if 0 /* expanded by -frewrite-includes */{{$}}
79f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}#pragma once{{$}}
80f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}#endif /* expanded by -frewrite-includes */{{$}}
81f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}# 2 "{{.*[/\\]Inputs(/|\\\\)}}rewrite-includes6.h"{{$}}
82f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}included_line6{{$}}
83f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}# 17 "{{.*}}rewrite-includes.c" 2{{$}}
84f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}} {{$}}
85f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}#if 0 /* expanded by -frewrite-includes */{{$}}
86f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}#include "rewrite-includes6.h" /* comment{{$}}
87f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}                                  continues */{{$}}
88f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}#endif /* expanded by -frewrite-includes */{{$}}
89*0a6a1f1dSLionel Sambuc // CHECK-NEXT: {{^}}# 19 "{{.*}}rewrite-includes.c"{{$}}
90f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}# 20 "{{.*}}rewrite-includes.c"{{$}}
91f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}#if 0 /* expanded by -frewrite-includes */{{$}}
92f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}#include "rewrite-includes7.h"{{$}}
93f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}#endif /* expanded by -frewrite-includes */{{$}}
94*0a6a1f1dSLionel Sambuc // CHECK-NEXT: {{^}}# 20 "{{.*}}rewrite-includes.c"{{$}}
95f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}# 1 "{{.*[/\\]Inputs(/|\\\\)}}rewrite-includes7.h" 1{{$}}
96f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}#ifndef REWRITE_INCLUDES_7{{$}}
97f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}#define REWRITE_INCLUDES_7{{$}}
98f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}included_line7{{$}}
99f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}#endif{{$}}
100f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}# 5 "{{.*[/\\]Inputs(/|\\\\)}}rewrite-includes7.h"{{$}}
101f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}# 21 "{{.*}}rewrite-includes.c" 2{{$}}
102f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}#if 0 /* expanded by -frewrite-includes */{{$}}
103f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}#include "rewrite-includes7.h"{{$}}
104f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}#endif /* expanded by -frewrite-includes */{{$}}
105*0a6a1f1dSLionel Sambuc // CHECK-NEXT: {{^}}# 21 "{{.*}}rewrite-includes.c"{{$}}
106f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}# 22 "{{.*}}rewrite-includes.c"{{$}}
107f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}#if 0 /* expanded by -frewrite-includes */{{$}}
108f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}#include "rewrite-includes8.h"{{$}}
109f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}#endif /* expanded by -frewrite-includes */{{$}}
110*0a6a1f1dSLionel Sambuc // CHECK-NEXT: {{^}}# 22 "{{.*}}rewrite-includes.c"{{$}}
111f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}# 1 "{{.*[/\\]Inputs(/|\\\\)}}rewrite-includes8.h" 1{{$}}
112f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}#if (1)/*__has_include_next(<rewrite-includes8.h>)*/{{$}}
113f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}#elif (0)/*__has_include(<rewrite-includes8.hfail>)*/{{$}}
114f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}# 3 "{{.*[/\\]Inputs(/|\\\\)}}rewrite-includes8.h"{{$}}
115f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}#endif{{$}}
116f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}# 4 "{{.*[/\\]Inputs(/|\\\\)}}rewrite-includes8.h"{{$}}
117f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}#if !(1)/*__has_include("rewrite-includes8.h")*/{{$}}
118f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}#endif{{$}}
119f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}# 6 "{{.*[/\\]Inputs(/|\\\\)}}rewrite-includes8.h"{{$}}
120f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}# 23 "{{.*}}rewrite-includes.c" 2{{$}}
121f4a2713aSLionel Sambuc // CHECK-NEXT: {{^}}// ENDCOMPARE{{$}}
122f4a2713aSLionel Sambuc 
123f4a2713aSLionel Sambuc // CHECKNL: {{^}}// STARTCOMPARE{{$}}
124f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}#define A(a,b) a ## b{{$}}
125f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}A(1,2){{$}}
126f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}#if 0 /* expanded by -frewrite-includes */{{$}}
127f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}#include "rewrite-includes1.h"{{$}}
128f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}#endif /* expanded by -frewrite-includes */{{$}}
129f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}#if 0 /* expanded by -frewrite-includes */{{$}}
130f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}#pragma clang system_header{{$}}
131f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}#endif /* expanded by -frewrite-includes */{{$}}
132f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}included_line1{{$}}
133f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}#if 0 /* expanded by -frewrite-includes */{{$}}
134f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}#include "rewrite-includes2.h"{{$}}
135f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}#endif /* expanded by -frewrite-includes */{{$}}
136f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}included_line2{{$}}
137f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}#ifdef FIRST{{$}}
138f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}#define HEADER "rewrite-includes3.h"{{$}}
139f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}#if 0 /* expanded by -frewrite-includes */{{$}}
140f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}#include HEADER{{$}}
141f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}#endif /* expanded by -frewrite-includes */{{$}}
142f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}included_line3{{$}}
143f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}#else{{$}}
144f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}#if 0 /* expanded by -frewrite-includes */{{$}}
145f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}#include "rewrite-includes4.h"{{$}}
146f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}#endif /* expanded by -frewrite-includes */{{$}}
147f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}#endif{{$}}
148f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}  // indented{{$}}
149f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}#if 0 /* expanded by -frewrite-includes */{{$}}
150f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}#/**/include /**/ "rewrite-includes5.h" /**/ {{\\}}{{$}}
151f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}} {{$}}
152f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}#endif /* expanded by -frewrite-includes */{{$}}
153f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}included_line5{{$}}
154f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}#if 0 /* expanded by -frewrite-includes */{{$}}
155f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}#include "rewrite-includes6.h" // comment{{$}}
156f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}#endif /* expanded by -frewrite-includes */{{$}}
157f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}#if 0 /* expanded by -frewrite-includes */{{$}}
158f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}#pragma once{{$}}
159f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}#endif /* expanded by -frewrite-includes */{{$}}
160f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}included_line6{{$}}
161f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}} {{$}}
162f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}#if 0 /* expanded by -frewrite-includes */{{$}}
163f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}#include "rewrite-includes6.h" /* comment{{$}}
164f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}                                  continues */{{$}}
165f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}#endif /* expanded by -frewrite-includes */{{$}}
166f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}#if 0 /* expanded by -frewrite-includes */{{$}}
167f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}#include "rewrite-includes7.h"{{$}}
168f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}#endif /* expanded by -frewrite-includes */{{$}}
169f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}#ifndef REWRITE_INCLUDES_7{{$}}
170f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}#define REWRITE_INCLUDES_7{{$}}
171f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}included_line7{{$}}
172f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}#endif{{$}}
173f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}#if 0 /* expanded by -frewrite-includes */{{$}}
174f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}#include "rewrite-includes7.h"{{$}}
175f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}#endif /* expanded by -frewrite-includes */{{$}}
176f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}#if 0 /* expanded by -frewrite-includes */{{$}}
177f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}#include "rewrite-includes8.h"{{$}}
178f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}#endif /* expanded by -frewrite-includes */{{$}}
179f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}#if (1)/*__has_include_next(<rewrite-includes8.h>)*/{{$}}
180f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}#elif (0)/*__has_include(<rewrite-includes8.hfail>)*/{{$}}
181f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}#endif{{$}}
182f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}#if !(1)/*__has_include("rewrite-includes8.h")*/{{$}}
183f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}#endif{{$}}
184f4a2713aSLionel Sambuc // CHECKNL-NEXT: {{^}}// ENDCOMPARE{{$}}
185