blob: 58d82ab407f145ee83789aaec95e9162e5cdc690 [file] [log] [blame]
David Blaikie8c0b3782012-06-06 18:52:13 +00001// RUN: %clang_cc1 -verify -rewrite-includes -DFIRST -I %S/Inputs %s -o - | FileCheck -strict-whitespace %s
2// RUN: %clang_cc1 -verify -rewrite-includes -P -DFIRST -I %S/Inputs %s -o - | FileCheck -check-prefix=CHECKNL -strict-whitespace %s
3// STARTCOMPARE
4#define A(a,b) a ## b
5A(1,2)
6#include "rewrite-includes1.h"
7#ifdef FIRST
8#define HEADER "rewrite-includes3.h"
9#include HEADER
10#else
11#include "rewrite-includes4.h"
12#endif
13#/**/include /**/ "rewrite-includes5.h" /**/ \
14
15#include "rewrite-includes6.h" // comment
16
17#include "rewrite-includes6.h" /* comment
18 continues */
19#include "rewrite-includes7.h"
20#include "rewrite-includes7.h"
21// ENDCOMPARE
22// CHECK: {{^}}// STARTCOMPARE{{$}}
23// CHECK-NEXT: {{^}}#define A(a,b) a ## b{{$}}
24// CHECK-NEXT: {{^}}A(1,2){{$}}
25// CHECK-NEXT: {{^}}#if 0 /* expanded by -rewrite-includes */{{$}}
26// CHECK-NEXT: {{^}}#include "rewrite-includes1.h"{{$}}
27// CHECK-NEXT: {{^}}#endif /* expanded by -rewrite-includes */{{$}}
28// CHECK-NEXT: {{^}}# 1 "{{.*}}/Inputs/rewrite-includes1.h" 1{{$}}
29// CHECK-NEXT: {{^}}#if 0 /* expanded by -rewrite-includes */{{$}}
30// CHECK-NEXT: {{^}}#pragma clang system_header{{$}}
31// CHECK-NEXT: {{^}}#endif /* expanded by -rewrite-includes */{{$}}
32// CHECK-NEXT: {{^}}# 2 "{{.*}}/Inputs/rewrite-includes1.h" 3{{$}}
33// CHECK-NEXT: {{^}}included_line1{{$}}
34// CHECK-NEXT: {{^}}#if 0 /* expanded by -rewrite-includes */{{$}}
35// CHECK-NEXT: {{^}}#include "rewrite-includes2.h"{{$}}
36// CHECK-NEXT: {{^}}#endif /* expanded by -rewrite-includes */{{$}}
37// CHECK-NEXT: {{^}}# 1 "{{.*}}/Inputs/rewrite-includes2.h" 1 3{{$}}
38// CHECK-NEXT: {{^}}included_line2{{$}}
39// CHECK-NEXT: {{^}}# 4 "{{.*}}/Inputs/rewrite-includes1.h" 2 3{{$}}
40// CHECK-NEXT: {{^}}# 7 "{{.*}}rewrite-includes.c" 2{{$}}
41// CHECK-NEXT: {{^}}#ifdef FIRST{{$}}
42// CHECK-NEXT: {{^}}#define HEADER "rewrite-includes3.h"{{$}}
43// CHECK-NEXT: {{^}}#if 0 /* expanded by -rewrite-includes */{{$}}
44// CHECK-NEXT: {{^}}#include HEADER{{$}}
45// CHECK-NEXT: {{^}}#endif /* expanded by -rewrite-includes */{{$}}
46// CHECK-NEXT: {{^}}# 1 "{{.*}}/Inputs/rewrite-includes3.h" 1{{$}}
47// CHECK-NEXT: {{^}}included_line3{{$}}
48// CHECK-NEXT: {{^}}# 10 "{{.*}}rewrite-includes.c" 2{{$}}
49// CHECK-NEXT: {{^}}#else{{$}}
50// CHECK-NEXT: {{^}}#if 0 /* expanded by -rewrite-includes */{{$}}
51// CHECK-NEXT: {{^}}#include "rewrite-includes4.h"{{$}}
52// CHECK-NEXT: {{^}}#endif /* expanded by -rewrite-includes */{{$}}
53// CHECK-NEXT: {{^}}# 12 "{{.*}}rewrite-includes.c"{{$}}
54// CHECK-NEXT: {{^}}#endif{{$}}
55// CHECK-NEXT: {{^}}#if 0 /* expanded by -rewrite-includes */{{$}}
56// CHECK-NEXT: {{^}}#/**/include /**/ "rewrite-includes5.h" /**/ {{\\}}{{$}}
57// CHECK-NEXT: {{^}} {{$}}
58// CHECK-NEXT: {{^}}#endif /* expanded by -rewrite-includes */{{$}}
59// CHECK-NEXT: {{^}}# 1 "{{.*}}/Inputs/rewrite-includes5.h" 1{{$}}
60// CHECK-NEXT: {{^}}included_line5{{$}}
61// CHECK-NEXT: {{^}}# 15 "{{.*}}rewrite-includes.c" 2{{$}}
62// CHECK-NEXT: {{^}}#if 0 /* expanded by -rewrite-includes */{{$}}
63// CHECK-NEXT: {{^}}#include "rewrite-includes6.h" // comment{{$}}
64// CHECK-NEXT: {{^}}#endif /* expanded by -rewrite-includes */{{$}}
65// CHECK-NEXT: {{^}}# 1 "{{.*}}/Inputs/rewrite-includes6.h" 1{{$}}
66// CHECK-NEXT: {{^}}#if 0 /* expanded by -rewrite-includes */{{$}}
67// CHECK-NEXT: {{^}}#pragma once{{$}}
68// CHECK-NEXT: {{^}}#endif /* expanded by -rewrite-includes */{{$}}
69// CHECK-NEXT: {{^}}# 2 "{{.*}}/Inputs/rewrite-includes6.h"{{$}}
70// CHECK-NEXT: {{^}}included_line6{{$}}
71// CHECK-NEXT: {{^}}# 16 "{{.*}}rewrite-includes.c" 2{{$}}
72// CHECK-NEXT: {{^}} {{$}}
73// CHECK-NEXT: {{^}}#if 0 /* expanded by -rewrite-includes */{{$}}
74// CHECK-NEXT: {{^}}#include "rewrite-includes6.h" /* comment{{$}}
75// CHECK-NEXT: {{^}} continues */{{$}}
76// CHECK-NEXT: {{^}}#endif /* expanded by -rewrite-includes */{{$}}
77// CHECK-NEXT: {{^}}# 19 "{{.*}}rewrite-includes.c"{{$}}
78// CHECK-NEXT: {{^}}#if 0 /* expanded by -rewrite-includes */{{$}}
79// CHECK-NEXT: {{^}}#include "rewrite-includes7.h"{{$}}
80// CHECK-NEXT: {{^}}#endif /* expanded by -rewrite-includes */{{$}}
81// CHECK-NEXT: {{^}}# 1 "{{.*}}/Inputs/rewrite-includes7.h" 1{{$}}
82// CHECK-NEXT: {{^}}#ifndef REWRITE_INCLUDES_7{{$}}
83// CHECK-NEXT: {{^}}#define REWRITE_INCLUDES_7{{$}}
84// CHECK-NEXT: {{^}}included_line7{{$}}
85// CHECK-NEXT: {{^}}#endif{{$}}
86// CHECK-NEXT: {{^}}# 20 "{{.*}}rewrite-includes.c" 2{{$}}
87// CHECK-NEXT: {{^}}#if 0 /* expanded by -rewrite-includes */{{$}}
88// CHECK-NEXT: {{^}}#include "rewrite-includes7.h"{{$}}
89// CHECK-NEXT: {{^}}#endif /* expanded by -rewrite-includes */{{$}}
90// CHECK-NEXT: {{^}}# 21 "{{.*}}rewrite-includes.c"{{$}}
91// CHECK-NEXT: {{^}}// ENDCOMPARE{{$}}
92
93// CHECKNL: {{^}}// STARTCOMPARE{{$}}
94// CHECKNL-NEXT: {{^}}#define A(a,b) a ## b{{$}}
95// CHECKNL-NEXT: {{^}}A(1,2){{$}}
96// CHECKNL-NEXT: {{^}}#if 0 /* expanded by -rewrite-includes */{{$}}
97// CHECKNL-NEXT: {{^}}#include "rewrite-includes1.h"{{$}}
98// CHECKNL-NEXT: {{^}}#endif /* expanded by -rewrite-includes */{{$}}
99// CHECKNL-NEXT: {{^}}#if 0 /* expanded by -rewrite-includes */{{$}}
100// CHECKNL-NEXT: {{^}}#pragma clang system_header{{$}}
101// CHECKNL-NEXT: {{^}}#endif /* expanded by -rewrite-includes */{{$}}
102// CHECKNL-NEXT: {{^}}included_line1{{$}}
103// CHECKNL-NEXT: {{^}}#if 0 /* expanded by -rewrite-includes */{{$}}
104// CHECKNL-NEXT: {{^}}#include "rewrite-includes2.h"{{$}}
105// CHECKNL-NEXT: {{^}}#endif /* expanded by -rewrite-includes */{{$}}
106// CHECKNL-NEXT: {{^}}included_line2{{$}}
107// CHECKNL-NEXT: {{^}}#ifdef FIRST{{$}}
108// CHECKNL-NEXT: {{^}}#define HEADER "rewrite-includes3.h"{{$}}
109// CHECKNL-NEXT: {{^}}#if 0 /* expanded by -rewrite-includes */{{$}}
110// CHECKNL-NEXT: {{^}}#include HEADER{{$}}
111// CHECKNL-NEXT: {{^}}#endif /* expanded by -rewrite-includes */{{$}}
112// CHECKNL-NEXT: {{^}}included_line3{{$}}
113// CHECKNL-NEXT: {{^}}#else{{$}}
114// CHECKNL-NEXT: {{^}}#if 0 /* expanded by -rewrite-includes */{{$}}
115// CHECKNL-NEXT: {{^}}#include "rewrite-includes4.h"{{$}}
116// CHECKNL-NEXT: {{^}}#endif /* expanded by -rewrite-includes */{{$}}
117// CHECKNL-NEXT: {{^}}#endif{{$}}
118// CHECKNL-NEXT: {{^}}#if 0 /* expanded by -rewrite-includes */{{$}}
119// CHECKNL-NEXT: {{^}}#/**/include /**/ "rewrite-includes5.h" /**/ {{\\}}{{$}}
120// CHECKNL-NEXT: {{^}} {{$}}
121// CHECKNL-NEXT: {{^}}#endif /* expanded by -rewrite-includes */{{$}}
122// CHECKNL-NEXT: {{^}}included_line5{{$}}
123// CHECKNL-NEXT: {{^}}#if 0 /* expanded by -rewrite-includes */{{$}}
124// CHECKNL-NEXT: {{^}}#include "rewrite-includes6.h" // comment{{$}}
125// CHECKNL-NEXT: {{^}}#endif /* expanded by -rewrite-includes */{{$}}
126// CHECKNL-NEXT: {{^}}#if 0 /* expanded by -rewrite-includes */{{$}}
127// CHECKNL-NEXT: {{^}}#pragma once{{$}}
128// CHECKNL-NEXT: {{^}}#endif /* expanded by -rewrite-includes */{{$}}
129// CHECKNL-NEXT: {{^}}included_line6{{$}}
130// CHECKNL-NEXT: {{^}} {{$}}
131// CHECKNL-NEXT: {{^}}#if 0 /* expanded by -rewrite-includes */{{$}}
132// CHECKNL-NEXT: {{^}}#include "rewrite-includes6.h" /* comment{{$}}
133// CHECKNL-NEXT: {{^}} continues */{{$}}
134// CHECKNL-NEXT: {{^}}#endif /* expanded by -rewrite-includes */{{$}}
135// CHECKNL-NEXT: {{^}}#if 0 /* expanded by -rewrite-includes */{{$}}
136// CHECKNL-NEXT: {{^}}#include "rewrite-includes7.h"{{$}}
137// CHECKNL-NEXT: {{^}}#endif /* expanded by -rewrite-includes */{{$}}
138// CHECKNL-NEXT: {{^}}#ifndef REWRITE_INCLUDES_7{{$}}
139// CHECKNL-NEXT: {{^}}#define REWRITE_INCLUDES_7{{$}}
140// CHECKNL-NEXT: {{^}}included_line7{{$}}
141// CHECKNL-NEXT: {{^}}#endif{{$}}
142// CHECKNL-NEXT: {{^}}#if 0 /* expanded by -rewrite-includes */{{$}}
143// CHECKNL-NEXT: {{^}}#include "rewrite-includes7.h"{{$}}
144// CHECKNL-NEXT: {{^}}#endif /* expanded by -rewrite-includes */{{$}}
145// CHECKNL-NEXT: {{^}}// ENDCOMPARE{{$}}