forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			31 lines
		
	
	
		
			582 B
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			582 B
		
	
	
	
		
			C
		
	
	
	
| // RUN: %clang_cc1 %s -emit-llvm -o - | FileCheck %s
 | |
| 
 | |
| int c[1][3*2];
 | |
| // CHECK: @{{.+}} ={{.*}}global [1 x [6 x {{i[0-9]+}}]] zeroinitializer
 | |
| 
 | |
| // CHECK-LABEL: @f
 | |
| int f(int * const m, int (**v)[*m * 2])
 | |
| {
 | |
|     return &(c[0][*m]) == &((*v)[0][*m]);
 | |
|     // CHECK: icmp
 | |
|     // CHECK: ret i{{[0-9]+}}
 | |
| }
 | |
| 
 | |
| // CHECK-LABEL: @test
 | |
| int test(int n, int (*(*fn)(void))[n]) {
 | |
|   return (*fn())[0];
 | |
| }
 | |
| 
 | |
| // CHECK-LABEL: @main
 | |
| int main()
 | |
| {
 | |
|     int m = 3;
 | |
|     int (*d)[3*2] = c;
 | |
|     int (*fn[m])(void);
 | |
|     return f(&m, &d) + test(m, &fn);
 | |
| 
 | |
|     // CHECK: call {{.+}} @f(
 | |
|     // CHECK: ret i{{[0-9]+}}
 | |
| }
 | |
| 
 |