1 | // RUN: %clang -x c-header -o %t.pch %s |
2 | // RUN: echo > %t.empty.c |
3 | // RUN: %clang -include %t -x c %t.empty.c -emit-llvm -S -o - |
4 | |
5 | // PR 4489: Crash with PCH |
6 | // PR 4492: Crash with PCH (round two) |
7 | // PR 4509: Crash with PCH (round three) |
8 | typedef struct _IO_FILE FILE; |
9 | extern int fprintf (struct _IO_FILE *__restrict __stream, |
10 | __const char *__restrict __format, ...); |
11 | |
12 | int x(void) |
13 | { |
14 | switch (1) { |
15 | case 2: ; |
16 | int y = 0; |
17 | } |
18 | } |
19 | |
20 | void y(void) { |
21 | extern char z; |
22 | fprintf (0, "a"); |
23 | } |
24 | |
25 | struct y0 { int i; } y0[1] = {}; |
26 | |
27 | void x0(void) |
28 | { |
29 | extern char z0; |
30 | fprintf (0, "a"); |
31 | } |
32 | |
33 | void x1(void) |
34 | { |
35 | fprintf (0, "asdf"); |
36 | } |
37 | |
38 | void y1(void) |
39 | { |
40 | extern char e; |
41 | fprintf (0, "asdf"); |
42 | } |
43 | |