| // RUN: clang -x c-header -o %t.pch %s |
| // RUN: echo > %t.empty.c |
| // RUN: clang -include %t -x c %t.empty.c -emit-llvm -S -o - |
| // PR 4489: Crash with PCH |
| // PR 4492: Crash with PCH (round two) |
| // PR 4509: Crash with PCH (round three) |
| typedef struct _IO_FILE FILE; |
| extern int fprintf (struct _IO_FILE *__restrict __stream, |
| __const char *__restrict __format, ...); |
| |
| int x(void) |
| { |
| switch (1) { |
| case 2: ; |
| int y = 0; |
| } |
| } |
| |
| void y(void) { |
| extern char z; |
| fprintf (0, "a"); |
| } |
| |
| struct y0 { int i; } y0[1] = {}; |
| |
| void x0(void) |
| { |
| extern char z0; |
| fprintf (0, "a"); |
| } |
| |
| void x1(void) |
| { |
| fprintf (0, "asdf"); |
| } |
| |
| void y1(void) |
| { |
| extern char e; |
| fprintf (0, "asdf"); |
| } |