annotate clang/test/CodeCompletion/templates.cpp @ 165:597b3f1c2c93

fix call createTailCallEliminationPass
author anatofuz
date Tue, 24 Mar 2020 15:30:52 +0900
parents 1d019706d866
children 1f2b6ac9f198
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 namespace std {
anatofuz
parents:
diff changeset
2 template<typename T>
anatofuz
parents:
diff changeset
3 class allocator {
anatofuz
parents:
diff changeset
4 public:
anatofuz
parents:
diff changeset
5 void in_base();
anatofuz
parents:
diff changeset
6 };
anatofuz
parents:
diff changeset
7
anatofuz
parents:
diff changeset
8 template<typename T, typename Alloc = std::allocator<T> >
anatofuz
parents:
diff changeset
9 class vector : Alloc {
anatofuz
parents:
diff changeset
10 public:
anatofuz
parents:
diff changeset
11 void foo();
anatofuz
parents:
diff changeset
12 void stop();
anatofuz
parents:
diff changeset
13 };
anatofuz
parents:
diff changeset
14 template<typename Alloc> class vector<bool, Alloc>;
anatofuz
parents:
diff changeset
15 }
anatofuz
parents:
diff changeset
16
anatofuz
parents:
diff changeset
17 void f() {
anatofuz
parents:
diff changeset
18 std::vector<int> v;
anatofuz
parents:
diff changeset
19 v.foo();
anatofuz
parents:
diff changeset
20 // RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:18:8 %s -o - | FileCheck -check-prefix=CHECK-CC1 %s
anatofuz
parents:
diff changeset
21 // CHECK-CC1: allocator<<#typename T#>>
anatofuz
parents:
diff changeset
22 // CHECK-CC1-NEXT: vector<<#typename T#>{#, <#typename Alloc#>#}>
anatofuz
parents:
diff changeset
23 // RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:19:5 %s -o - | FileCheck -check-prefix=CHECK-CC2 %s
anatofuz
parents:
diff changeset
24 // CHECK-CC2: foo
anatofuz
parents:
diff changeset
25 // CHECK-CC2: in_base
anatofuz
parents:
diff changeset
26 // CHECK-CC2: stop
anatofuz
parents:
diff changeset
27 }
anatofuz
parents:
diff changeset
28
anatofuz
parents:
diff changeset
29
anatofuz
parents:
diff changeset
30 template <typename> struct X;
anatofuz
parents:
diff changeset
31 template <typename T> struct X<T*> { X(double); };
anatofuz
parents:
diff changeset
32 X<int*> x(42);
anatofuz
parents:
diff changeset
33 // RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:32:11 %s -o - | FileCheck -check-prefix=CHECK-CONSTRUCTOR %s
anatofuz
parents:
diff changeset
34 // CHECK-CONSTRUCTOR: OVERLOAD: X(<#double#>)
anatofuz
parents:
diff changeset
35 // (rather than X<type-parameter-0-0 *>(<#double#>)