1*67e74705SXin Li // RUN: %clang_cc1 -emit-llvm %s -o /dev/null 2*67e74705SXin Li 3*67e74705SXin Li int code[]={0,0,0,0,1}; foo(int x)4*67e74705SXin Livoid foo(int x) { 5*67e74705SXin Li volatile int b; 6*67e74705SXin Li b = 0xffffffff; 7*67e74705SXin Li } bar(int * pc)8*67e74705SXin Livoid bar(int *pc) { 9*67e74705SXin Li static const void *l[] = {&&lab0, &&end}; 10*67e74705SXin Li 11*67e74705SXin Li foo(0); 12*67e74705SXin Li goto *l[*pc]; 13*67e74705SXin Li lab0: 14*67e74705SXin Li foo(0); 15*67e74705SXin Li pc++; 16*67e74705SXin Li goto *l[*pc]; 17*67e74705SXin Li end: 18*67e74705SXin Li return; 19*67e74705SXin Li } main()20*67e74705SXin Liint main() { 21*67e74705SXin Li bar(code); 22*67e74705SXin Li return 0; 23*67e74705SXin Li } 24