blob: 5e3dec155cad40c4a4b8b2cdf8516fa02c8cee2f [file] [log] [blame]
Chris Lattner5dbefc62010-04-13 00:01:41 +00001// RUN: %clang_cc1 -E %s 2>&1 | FileCheck %s -strict-whitespace
Michael Kruseae6b4002021-07-25 21:39:08 -05002// RUN: %clang_cc1 -E -fminimize-whitespace %s 2>&1 | FileCheck %s -strict-whitespace
Chris Lattner5dbefc62010-04-13 00:01:41 +00003// PR6101
4int a;
Chris Lattnerc745cec2010-04-14 04:28:50 +00005// CHECK: # 1 "{{.*}}line-directive-output.c"
Daniel Dunbar5d388752012-11-16 01:51:11 +00006
7// Check that we do not emit an enter marker for the main file.
8// CHECK-NOT: # 1 "{{.*}}line-directive-output.c" 1
9
Chris Lattner5dbefc62010-04-13 00:01:41 +000010// CHECK: int a;
11
12// CHECK-NEXT: # 50 "{{.*}}line-directive-output.c"
13// CHECK-NEXT: int b;
14#line 50
15int b;
16
17// CHECK: # 13 "{{.*}}line-directive-output.c"
18// CHECK-NEXT: int c;
19# 13
20int c;
21
22
23// CHECK-NEXT: # 1 "A.c"
24#line 1 "A.c"
25// CHECK-NEXT: # 2 "A.c"
26#line 2
27
28// CHECK-NEXT: # 1 "B.c"
29#line 1 "B.c"
30
31// CHECK-NEXT: # 1000 "A.c"
32#line 1000 "A.c"
33
34int y;
35
36
37
38
39
40
41
42// CHECK: # 1010 "A.c"
43int z;
44
45extern int x;
46
47# 3 "temp2.h" 1
48extern int y;
49
50# 7 "A.c" 2
51extern int z;
52
53
54
55
56
57
58
59
60
61
62
63
64
65// CHECK: # 25 "A.c"
66
67
68// CHECK: # 50 "C.c" 1
69# 50 "C.c" 1
70
71
72// CHECK-NEXT: # 2000 "A.c" 2
73# 2000 "A.c" 2
74# 42 "A.c"
75# 44 "A.c"
76# 49 "A.c"
Eli Friedman80e45b82013-08-29 01:42:42 +000077
78// CHECK: # 50 "a\n.c"
79# 50 "a\012.c"
Reid Kleckner1ace0042017-05-23 16:09:13 +000080
81# 1 "system.h" 3
82# 2
83void sys_foo(void);
84// CHECK: # 1 "system.h" 3
85// CHECK-NEXT: # 2 "system.h" 3
86// CHECK-NEXT: void sys_foo(void);