// RUN: %clang_cc1 -std=c++11 -fsyntax-only -verify %s // expected-no-diagnostics namespace pr12262 { template void abc1(int (*xxx)[sizeof ... (Ts) + 1]); void qq1 () { abc1(0); abc1(0); } template class array {}; template array make_array1(Types&&... args); void qq2 () { array<1> arr = make_array1(1); array<3> arr2 = make_array1(1,array<5>(),0.1); } template int make_array(array&, Types... args); void qq3 () { array<1> a1; int aa1 = make_array(a1,1); array<2> a2; int aa2 = make_array(a2, 0L, "abc"); } template struct AAA { template static array make_array(Types ... args); }; void qq4 () { array<2> arr2 = AAA::make_array(1,2); } } namespace pr12439 { template struct X { template using get_t = decltype(sizeof...(Members)); template get_t get(); }; template template typename X::template get_t X::get() { return 0; } } namespace pr13272 { template struct enable_if { }; template struct enable_if { typedef T type; }; class Exception {}; template void cxx_throw(typename enable_if<(sizeof...(Args) > 0), const char *>::type fmt, Args&&... args) { return; } void test() { cxx_throw("Youpi",1); } } namespace pr13817 { template struct zod; template <> struct zod<1> {}; template zod make_zod(Ts ...) { return zod(); } int main(int argc, char *argv[]) { make_zod(1); return 0; } } namespace pr14273 { template struct myType { }; template struct Counter { static const int count = 1 + Counter::count; }; template struct Counter { static const int count = 1; }; template myType* make_array_with_type(const Args&... args) { return 0; } void func(void) { make_array_with_type(1,2,3); } } namespace pr15112 { template struct enable_if { }; template struct enable_if { typedef _Tp type; }; typedef __typeof__(sizeof(int)) size_t; template struct is_array_of { static const bool value = true; }; struct cpu { using value_type = void; }; template struct coords_alias { typedef T type; }; template using coords = typename coords_alias::type; template typename enable_if::value, coords>::type mkcoords(Args... args); auto c1 = mkcoords(0ul, 0ul, 0ul); } namespace pr12699 { template struct bool_constant { static const bool value = B; }; template struct F { template using SameSize = bool_constant; template> F(B...) { } }; void func() { F f1(3); } }