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