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