xref: /llvm-project/clang/test/InterfaceStubs/var-template-specialization-decl.cpp (revision 61fa9afe4c5b014181ce41a35c84fb0f3be975db)
179e345fbSPuyan Lotfi // REQUIRES: x86-registered-target
2e782192dSPuyan Lotfi // RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -o - -emit-interface-stubs %s | FileCheck %s
379e345fbSPuyan Lotfi 
4*61fa9afeSHaowei Wu // CHECK:      --- !ifs-v1
5*61fa9afeSHaowei Wu // CHECK-NEXT: IfsVersion: 3.0
6*61fa9afeSHaowei Wu // CHECK-NEXT: Target: x86_64-unknown-linux-gnu
779e345fbSPuyan Lotfi // CHECK-NEXT: Symbols:
8e3033c0cSPuyan Lotfi // CHECK-NEXT: - { Name: "a", Type: Object, Size: 4 }
979e345fbSPuyan Lotfi // CHECK-NEXT: ...
1079e345fbSPuyan Lotfi 
1179e345fbSPuyan Lotfi template<typename T, T v> struct S9 {
1279e345fbSPuyan Lotfi     static constexpr T value = v;
1379e345fbSPuyan Lotfi };
1479e345fbSPuyan Lotfi template<typename T> struct S0 : public S9<bool, true> { };
1579e345fbSPuyan Lotfi template<typename T> constexpr bool CE2 = S0<T>::value;
1679e345fbSPuyan Lotfi int a = CE2<int>;
17