// RUN: %clang_cc1 -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);
}
