10e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// RUN: %clang_cc1 %s -emit-llvm -o - | FileCheck %s 20e2c34f92f00628d48968dfea096d36381f494cbStephen Hines 30e2c34f92f00628d48968dfea096d36381f494cbStephen Hinesint c[1][3*2]; 40e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK: @{{.+}} = {{.*}} global [1 x [6 x {{i[0-9]+}}]] zeroinitializer 50e2c34f92f00628d48968dfea096d36381f494cbStephen Hines 60e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK-LABEL: @f 70e2c34f92f00628d48968dfea096d36381f494cbStephen Hinesint f(int * const m, int (**v)[*m * 2]) 80e2c34f92f00628d48968dfea096d36381f494cbStephen Hines{ 90e2c34f92f00628d48968dfea096d36381f494cbStephen Hines return &(c[0][*m]) == &((*v)[0][*m]); 100e2c34f92f00628d48968dfea096d36381f494cbStephen Hines // CHECK: icmp 110e2c34f92f00628d48968dfea096d36381f494cbStephen Hines // CHECK: ret i{{[0-9]+}} 120e2c34f92f00628d48968dfea096d36381f494cbStephen Hines} 130e2c34f92f00628d48968dfea096d36381f494cbStephen Hines 140e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK-LABEL: @test 150e2c34f92f00628d48968dfea096d36381f494cbStephen Hinesint test(int n, int (*(*fn)(void))[n]) { 160e2c34f92f00628d48968dfea096d36381f494cbStephen Hines return (*fn())[0]; 170e2c34f92f00628d48968dfea096d36381f494cbStephen Hines} 180e2c34f92f00628d48968dfea096d36381f494cbStephen Hines 190e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// CHECK-LABEL: @main 200e2c34f92f00628d48968dfea096d36381f494cbStephen Hinesint main() 210e2c34f92f00628d48968dfea096d36381f494cbStephen Hines{ 220e2c34f92f00628d48968dfea096d36381f494cbStephen Hines int m = 3; 230e2c34f92f00628d48968dfea096d36381f494cbStephen Hines int (*d)[3*2] = c; 240e2c34f92f00628d48968dfea096d36381f494cbStephen Hines int (*fn[m])(void); 250e2c34f92f00628d48968dfea096d36381f494cbStephen Hines return f(&m, &d) + test(m, &fn); 260e2c34f92f00628d48968dfea096d36381f494cbStephen Hines 270e2c34f92f00628d48968dfea096d36381f494cbStephen Hines // CHECK: call {{.+}} @f( 280e2c34f92f00628d48968dfea096d36381f494cbStephen Hines // CHECK: ret i{{[0-9]+}} 290e2c34f92f00628d48968dfea096d36381f494cbStephen Hines} 300e2c34f92f00628d48968dfea096d36381f494cbStephen Hines 31