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