xref: /aosp_15_r20/external/clang/test/PCH/pr4489.c (revision 67e74705e28f6214e480b399dd47ea732279e315)
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 Li int 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 Li void 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 Li void 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 Li void x1(void)
34*67e74705SXin Li {
35*67e74705SXin Li   fprintf (0, "asdf");
36*67e74705SXin Li }
37*67e74705SXin Li 
y1(void)38*67e74705SXin Li void y1(void)
39*67e74705SXin Li {
40*67e74705SXin Li   extern char e;
41*67e74705SXin Li   fprintf (0, "asdf");
42*67e74705SXin Li }
43