| // 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>(); | |
| } |