function(int x)1 int function(int x) {
2   return x + 1;
3 }
4 
5 int variable = 0;
6 
7 class Class {
8 public:
Class()9   Class() { }
10 
method(int x)11   int method(int x) {
12     return x + 1;
13   }
14 
virtualMethod()15   virtual void virtualMethod() {
16   }
17 
staticMethod()18   static void staticMethod() {
19   }
20 
21   static int staticVar;
22 };
23 
24 class SubClass : public Class {
virtualMethod()25   void virtualMethod() override final {
26   }
27 };
28 
29 struct Struct {
30 };
31 
32 // RUN: %clang_cc1 -std=c++11 -code-completion-at=%s:1:1 %s | FileCheck --check-prefix=CHECK-TOP-LEVEL %s
33 // RUN: %clang_cc1 -std=c++11 -code-completion-at=%s:5:1 %s | FileCheck --check-prefix=CHECK-TOP-LEVEL %s
34 // RUN: %clang_cc1 -std=c++11 -code-completion-at=%s:11:1 %s | FileCheck --check-prefix=CHECK-TOP-LEVEL %s
35 // CHECK-TOP-LEVEL: alignas(<#expression#>)
36 // CHECK-TOP-LEVEL: constexpr
37 // CHECK-TOP-LEVEL: static_assert(<#expression#>, <#message#>);
38 // CHECK-TOP-LEVEL: thread_local
39 // CHECK-TOP-LEVEL-NOT: final
40 // CHECK-TOP-LEVEL-NOT: noexcept
41 
42 // RUN: %clang_cc1 -std=c++11 -code-completion-at=%s:1:14 %s | FileCheck --check-prefix=CHECK-PARAM %s
43 // CHECK-PARAM-NOT: alignas
44 // CHECK-PARAM-NOT: constexpr
45 // CHECK-PARAM-NOT: final
46 // CHECK-PARAM-NOT: thread_local
47 
48 // RUN: %clang_cc1 -std=c++11 -code-completion-at=%s:21:10 %s | FileCheck --check-prefix=CHECK-STATICVAR1 %s
49 // CHECK-STATICVAR1: constexpr
50 // CHECK-STATICVAR1: thread_local
51 
52 // RUN: %clang_cc1 -std=c++11 -code-completion-at=%s:7:13 %s | FileCheck --check-prefix=CHECK-CLASS-QUALIFIER %s
53 // RUN: %clang_cc1 -std=c++11 -code-completion-at=%s:24:16 %s | FileCheck --check-prefix=CHECK-CLASS-QUALIFIER %s
54 // RUN: %clang_cc1 -std=c++11 -code-completion-at=%s:29:15 %s | FileCheck --check-prefix=CHECK-CLASS-QUALIFIER %s
55 // CHECK-CLASS-QUALIFIER: final
56 
57 // RUN: %clang_cc1 -std=c++11 -code-completion-at=%s:1:21 %s | FileCheck --check-prefix=CHECK-FUNCTION-QUALIFIER %s
58 // RUN: %clang_cc1 -std=c++11 -code-completion-at=%s:9:11 %s | FileCheck --check-prefix=CHECK-FUNCTION-QUALIFIER %s
59 // RUN: %clang_cc1 -std=c++11 -code-completion-at=%s:18:30 %s | FileCheck --check-prefix=CHECK-FUNCTION-QUALIFIER %s
60 // CHECK-FUNCTION-QUALIFIER: noexcept
61 // CHECK-FUNCTION-QUALIFIER-NOT: final
62 // CHECK-FUNCTION-QUALIFIER-NOT: override
63 
64 // RUN: %clang_cc1 -std=c++11 -code-completion-at=%s:11:21 %s | FileCheck --check-prefix=CHECK-METHOD-QUALIFIER %s
65 // RUN: %clang_cc1 -std=c++11 -code-completion-at=%s:15:32 %s | FileCheck --check-prefix=CHECK-METHOD-QUALIFIER %s
66 // RUN: %clang_cc1 -std=c++11 -code-completion-at=%s:25:24 %s | FileCheck --check-prefix=CHECK-METHOD-QUALIFIER %s
67 // CHECK-METHOD-QUALIFIER: final
68 // CHECK-METHOD-QUALIFIER: noexcept
69 // CHECK-METHOD-QUALIFIER: override
70 
71 // RUN: %clang_cc1 -std=c++11 -code-completion-at=%s:25:33 %s | FileCheck --check-prefix=CHECK-OVERRIDE-SPECIFIED %s
72 // CHECK-OVERRIDE-SPECIFIED: final
73 // CHECK-OVERRIDE-SPECIFIED: noexcept
74 // CHECK-OVERRIDE-SPECIFIED-NOT: override
75 
76 // RUN: %clang_cc1 -std=c++11 -code-completion-at=%s:25:39 %s | FileCheck --check-prefix=CHECK-OVERRIDE-FINAL-SPECIFIED %s
77 // CHECK-OVERRIDE-FINAL-SPECIFIED: noexcept
78 // CHECK-OVERRIDE-FINAL-SPECIFIED-NOT: final
79 // CHECK-OVERRIDE-FINAL-SPECIFIED-NOT: override
80