// RUN: %clang_cc1 -no-opaque-pointers -triple x86_64-apple-darwin10 -emit-llvm -o - %s | FileCheck %s
struct X {
  X();
  ~X();
};

struct Y {
  Y();
  ~Y();
};

// CHECK-LABEL: define{{.*}} void @_Z1fiPPKc(
void f(int argc, const char* argv[]) {
  // CHECK: call void @_ZN1XC1Ev
  X x;
  // CHECK: call i8* @llvm.stacksave(
  const char *argv2[argc];
  // CHECK: call void @_ZN1YC1Ev
  Y y;
  for (int i = 0; i != argc; ++i)
    argv2[i] = argv[i];

  // CHECK: call void @_ZN1YD1Ev
  // CHECK: call void @llvm.stackrestore
  // CHECK: call void @_ZN1XD1Ev
  // CHECK: ret void
}

namespace PR11744 {
  // Make sure this doesn't crash; there was a use-after-free issue
  // for this testcase.
  template<typename T> int f(int n) {
    T arr[3][n];
    return 3;
  }
  int test = f<int>(0);
}
