// RUN: %clang_cc1 -triple x86_64-linux -std=c++14 %s -emit-llvm -o - | FileCheck %s
// RUN: %clang_cc1 -triple x86_64-linux -std=c++17 %s -emit-llvm -o - | FileCheck %s
namespace std {
template<typename T> class initializer_list {
const T *data;
__SIZE_TYPE__ size;
public:
initializer_list();
};
}
namespace ParenBraceInitList {
struct Vector {
Vector(std::initializer_list<int>);
~Vector();
};
struct Base { Base(Vector) {} };
// CHECK: define {{.*}}18ParenBraceInitList1fILi0EE
template<int> void f() {
// CHECK: call {{.*}}18ParenBraceInitList6VectorC1
// CHECK: call {{.*}}18ParenBraceInitList6VectorD1
Base({0});
}
template void f<0>();
}