31 lines
		
	
	
		
			584 B
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			584 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]+}}
 | 
						|
}
 | 
						|
 |