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