Mercurial > hg > CbC > CbC_llvm
comparison clang/test/AST/ast-print-out-of-line-func.cpp @ 150:1d019706d866
LLVM10
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 15:10:13 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
147:c2174574ed3a | 150:1d019706d866 |
---|---|
1 // RUN: %clang_cc1 -ast-print -std=c++14 %s | FileCheck %s | |
2 | |
3 namespace ns { | |
4 | |
5 struct Wrapper { | |
6 class Inner { | |
7 Inner(); | |
8 Inner(int); | |
9 ~Inner(); | |
10 | |
11 void operator += (int); | |
12 | |
13 template<typename T> | |
14 void member(); | |
15 | |
16 static void staticMember(); | |
17 | |
18 operator int(); | |
19 | |
20 operator ns::Wrapper(); | |
21 // CHECK: operator ns::Wrapper() | |
22 }; | |
23 }; | |
24 | |
25 Wrapper::Inner::Inner() { } | |
26 // CHECK: Wrapper::Inner::Inner() | |
27 | |
28 void Wrapper::Inner::operator +=(int) { } | |
29 // CHECK: void Wrapper::Inner::operator+=(int) | |
30 | |
31 } | |
32 | |
33 ns::Wrapper::Inner::Inner(int) { } | |
34 // CHECK: ns::Wrapper::Inner::Inner(int) | |
35 | |
36 ns::Wrapper::Inner::~Inner() { } | |
37 // CHECK: ns::Wrapper::Inner::~Inner() | |
38 | |
39 template<typename T> | |
40 void ::ns::Wrapper::Inner::member() { } | |
41 // CHECK: template <typename T> void ::ns::Wrapper::Inner::member() | |
42 | |
43 ns::Wrapper::Inner::operator int() { return 0; } | |
44 // CHECK: ns::Wrapper::Inner::operator int() | |
45 | |
46 ns::Wrapper::Inner::operator ::ns::Wrapper() { return ns::Wrapper(); } | |
47 // CHECK: ns::Wrapper::Inner::operator ::ns::Wrapper() | |
48 | |
49 namespace ns { | |
50 | |
51 void Wrapper::Inner::staticMember() { } | |
52 // CHECK: void Wrapper::Inner::staticMember() | |
53 | |
54 } | |
55 | |
56 template<int x, typename T> | |
57 class TemplateRecord { | |
58 void function(); | |
59 template<typename U> void functionTemplate(T, U); | |
60 }; | |
61 | |
62 template<int x, typename T> | |
63 void TemplateRecord<x, T>::function() { } | |
64 // CHECK: template <int x, typename T> void TemplateRecord<x, T>::function() | |
65 | |
66 template<int x, typename T> | |
67 template<typename U> | |
68 void TemplateRecord<x, T>::functionTemplate(T, U) { } | |
69 // CHECK: template <int x, typename T> template <typename U> void TemplateRecord<x, T>::functionTemplate(T, U) | |
70 | |
71 template<> | |
72 class TemplateRecord<0, int> { | |
73 void function(); | |
74 template<typename U> void functionTemplate(int, U); | |
75 }; | |
76 | |
77 void TemplateRecord<0, int>::function() { } | |
78 // CHECK: void TemplateRecord<0, int>::function() | |
79 | |
80 template<typename U> | |
81 void TemplateRecord<0, int>::functionTemplate(int, U) { } | |
82 // CHECK: template <typename U> void TemplateRecord<0, int>::functionTemplate(int, U) | |
83 | |
84 template<typename T> | |
85 struct OuterTemplateRecord { | |
86 template<typename U> | |
87 struct Inner { | |
88 void function(); | |
89 }; | |
90 }; | |
91 | |
92 template<typename T> | |
93 template<typename U> | |
94 void OuterTemplateRecord<T>::Inner<U>::function() { } | |
95 // CHECK: template <typename T> template <typename U> void OuterTemplateRecord<T>::Inner<U>::function() |