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