blob: f12742755a9f7e9320336f8294d99fe42f4a82f8 [file] [log] [blame]
Argyrios Kyrtzidisdd41c142010-06-23 13:48:30 +00001// Test this without pch.
Argyrios Kyrtzidis8dfbd8b2010-06-24 08:57:31 +00002// RUN: %clang_cc1 -include %S/cxx-templates.h -verify %s -ast-dump
Argyrios Kyrtzidis90b715e2010-06-19 19:28:53 +00003
Argyrios Kyrtzidisdd41c142010-06-23 13:48:30 +00004// Test with pch.
5// RUN: %clang_cc1 -x c++-header -emit-pch -o %t %S/cxx-templates.h
Argyrios Kyrtzidis8dfbd8b2010-06-24 08:57:31 +00006// RUN: %clang_cc1 -include-pch %t -verify %s -ast-dump
7
8struct A {
9 typedef int type;
10 static void my_f();
11 template <typename T>
12 static T my_templf(T x) { return x; }
13};
Argyrios Kyrtzidisf511ba62010-06-22 09:55:07 +000014
15void test() {
Argyrios Kyrtzidisb24e1992010-06-25 16:25:09 +000016 int x = templ_f<int, 5>(3);
Argyrios Kyrtzidisdd41c142010-06-23 13:48:30 +000017
18 S<char, float>::templ();
19 S<int, char>::partial();
20 S<int, float>::explicit_special();
Argyrios Kyrtzidis8dfbd8b2010-06-24 08:57:31 +000021
22 Dep<A>::Ty ty;
23 Dep<A> a;
24 a.f();
Argyrios Kyrtzidisf511ba62010-06-22 09:55:07 +000025}