// Test this without pch.
// RUN: %clang_cc1 -include %s -verify -std=c++11 %s

// Test with pch.
// RUN: %clang_cc1 -std=c++11 -emit-pch -o %t %s
// RUN: %clang_cc1 -include-pch %t -verify -std=c++11 %s 

// expected-no-diagnostics

#ifndef HEADER
#define HEADER

template<typename T>
class New {
  New(const New&);

public:
  New *clone() {
    return new New(*this);
  }
};

template<typename ...T> int *arr_new(T ...v) {
  return new int[]{v...};
}

#else

New<int> *clone_new(New<int> *n) {
  return n->clone();
}

int *use_arr_new = arr_new(1, 2, 3);

#endif
