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