24 lines
		
	
	
		
			318 B
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			24 lines
		
	
	
		
			318 B
		
	
	
	
		
			C
		
	
	
	
| // RUN: %clang_cc1 -emit-llvm %s  -o /dev/null
 | |
| 
 | |
| int code[]={0,0,0,0,1};
 | |
| void foo(int x) {
 | |
|   volatile int b;
 | |
|   b = 0xffffffff;
 | |
| }
 | |
| void bar(int *pc) {
 | |
|   static const void *l[] = {&&lab0, &&end};
 | |
| 
 | |
|   foo(0);
 | |
|   goto *l[*pc];
 | |
|  lab0:
 | |
|   foo(0);
 | |
|   pc++;
 | |
|   goto *l[*pc];
 | |
|  end:
 | |
|   return;
 | |
| }
 | |
| int main() {
 | |
|   bar(code);
 | |
|   return 0;
 | |
| }
 |