xref: /minix3/external/bsd/llvm/dist/clang/test/CodeGenCXX/delayed-template-parsing.cpp (revision f4a2713ac843a11c696ec80c0a5e3e5d80b4d338)
1*f4a2713aSLionel Sambuc // RUN: %clang_cc1 -std=c++11 -emit-llvm %s -o - -cxx-abi microsoft -fms-extensions -fdelayed-template-parsing -triple=i386-pc-win32 | FileCheck %s
2*f4a2713aSLionel Sambuc // RUN: %clang_cc1 -std=c++11 -emit-llvm %s -o - -cxx-abi microsoft -fms-extensions -fdelayed-template-parsing -triple=x86_64-pc-win32 | FileCheck -check-prefix X64 %s
3*f4a2713aSLionel Sambuc 
4*f4a2713aSLionel Sambuc namespace ClassScopeSpecialization {
5*f4a2713aSLionel Sambuc   struct Type {
6*f4a2713aSLionel Sambuc     template <int i>
7*f4a2713aSLionel Sambuc     void Foo() {}
8*f4a2713aSLionel Sambuc     template <>
9*f4a2713aSLionel Sambuc     void Foo<0>() {}
10*f4a2713aSLionel Sambuc   };
11*f4a2713aSLionel Sambuc 
12*f4a2713aSLionel Sambuc   void call() {
13*f4a2713aSLionel Sambuc     Type T;
14*f4a2713aSLionel Sambuc // CHECK: call {{.*}} @"\01??$Foo@$0A@@Type@ClassScopeSpecialization@@QAEXXZ"
15*f4a2713aSLionel Sambuc // X64: call {{.*}} @"\01??$Foo@$0A@@Type@ClassScopeSpecialization@@QEAAXXZ"
16*f4a2713aSLionel Sambuc     T.Foo<0>();
17*f4a2713aSLionel Sambuc   }
18*f4a2713aSLionel Sambuc }
19