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