// RUN: %clang_cc1 -Wno-error=incompatible-pointer-types %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(void)
{
    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]+}}
}

