function(int x)18f4d399cSAlex Lorenz int function(int x) {
28f4d399cSAlex Lorenz return x + 1;
38f4d399cSAlex Lorenz }
48f4d399cSAlex Lorenz
58f4d399cSAlex Lorenz int variable = 0;
68f4d399cSAlex Lorenz
78f4d399cSAlex Lorenz class Class {
88f4d399cSAlex Lorenz public:
Class()98f4d399cSAlex Lorenz Class() { }
108f4d399cSAlex Lorenz
method(int x)118f4d399cSAlex Lorenz int method(int x) {
128f4d399cSAlex Lorenz return x + 1;
138f4d399cSAlex Lorenz }
148f4d399cSAlex Lorenz
virtualMethod()158f4d399cSAlex Lorenz virtual void virtualMethod() {
168f4d399cSAlex Lorenz }
178f4d399cSAlex Lorenz
staticMethod()188f4d399cSAlex Lorenz static void staticMethod() {
198f4d399cSAlex Lorenz }
208f4d399cSAlex Lorenz
218f4d399cSAlex Lorenz static int staticVar;
228f4d399cSAlex Lorenz };
238f4d399cSAlex Lorenz
248f4d399cSAlex Lorenz class SubClass : public Class {
virtualMethod()258f4d399cSAlex Lorenz void virtualMethod() override final {
268f4d399cSAlex Lorenz }
278f4d399cSAlex Lorenz };
288f4d399cSAlex Lorenz
298f4d399cSAlex Lorenz struct Struct {
308f4d399cSAlex Lorenz };
318f4d399cSAlex Lorenz
328f4d399cSAlex Lorenz // RUN: %clang_cc1 -std=c++11 -code-completion-at=%s:1:1 %s | FileCheck --check-prefix=CHECK-TOP-LEVEL %s
338f4d399cSAlex Lorenz // RUN: %clang_cc1 -std=c++11 -code-completion-at=%s:5:1 %s | FileCheck --check-prefix=CHECK-TOP-LEVEL %s
348f4d399cSAlex Lorenz // RUN: %clang_cc1 -std=c++11 -code-completion-at=%s:11:1 %s | FileCheck --check-prefix=CHECK-TOP-LEVEL %s
358f4d399cSAlex Lorenz // CHECK-TOP-LEVEL: alignas(<#expression#>)
368f4d399cSAlex Lorenz // CHECK-TOP-LEVEL: constexpr
37*2fa31880SIlya Biryukov // CHECK-TOP-LEVEL: static_assert(<#expression#>, <#message#>);
388f4d399cSAlex Lorenz // CHECK-TOP-LEVEL: thread_local
398f4d399cSAlex Lorenz // CHECK-TOP-LEVEL-NOT: final
408f4d399cSAlex Lorenz // CHECK-TOP-LEVEL-NOT: noexcept
418f4d399cSAlex Lorenz
428f4d399cSAlex Lorenz // RUN: %clang_cc1 -std=c++11 -code-completion-at=%s:1:14 %s | FileCheck --check-prefix=CHECK-PARAM %s
438f4d399cSAlex Lorenz // CHECK-PARAM-NOT: alignas
448f4d399cSAlex Lorenz // CHECK-PARAM-NOT: constexpr
458f4d399cSAlex Lorenz // CHECK-PARAM-NOT: final
468f4d399cSAlex Lorenz // CHECK-PARAM-NOT: thread_local
478f4d399cSAlex Lorenz
488f4d399cSAlex Lorenz // RUN: %clang_cc1 -std=c++11 -code-completion-at=%s:21:10 %s | FileCheck --check-prefix=CHECK-STATICVAR1 %s
498f4d399cSAlex Lorenz // CHECK-STATICVAR1: constexpr
508f4d399cSAlex Lorenz // CHECK-STATICVAR1: thread_local
518f4d399cSAlex Lorenz
528f4d399cSAlex Lorenz // RUN: %clang_cc1 -std=c++11 -code-completion-at=%s:7:13 %s | FileCheck --check-prefix=CHECK-CLASS-QUALIFIER %s
538f4d399cSAlex Lorenz // RUN: %clang_cc1 -std=c++11 -code-completion-at=%s:24:16 %s | FileCheck --check-prefix=CHECK-CLASS-QUALIFIER %s
548f4d399cSAlex Lorenz // RUN: %clang_cc1 -std=c++11 -code-completion-at=%s:29:15 %s | FileCheck --check-prefix=CHECK-CLASS-QUALIFIER %s
558f4d399cSAlex Lorenz // CHECK-CLASS-QUALIFIER: final
568f4d399cSAlex Lorenz
578f4d399cSAlex Lorenz // RUN: %clang_cc1 -std=c++11 -code-completion-at=%s:1:21 %s | FileCheck --check-prefix=CHECK-FUNCTION-QUALIFIER %s
588f4d399cSAlex Lorenz // RUN: %clang_cc1 -std=c++11 -code-completion-at=%s:9:11 %s | FileCheck --check-prefix=CHECK-FUNCTION-QUALIFIER %s
598f4d399cSAlex Lorenz // RUN: %clang_cc1 -std=c++11 -code-completion-at=%s:18:30 %s | FileCheck --check-prefix=CHECK-FUNCTION-QUALIFIER %s
608f4d399cSAlex Lorenz // CHECK-FUNCTION-QUALIFIER: noexcept
618f4d399cSAlex Lorenz // CHECK-FUNCTION-QUALIFIER-NOT: final
628f4d399cSAlex Lorenz // CHECK-FUNCTION-QUALIFIER-NOT: override
638f4d399cSAlex Lorenz
648f4d399cSAlex Lorenz // RUN: %clang_cc1 -std=c++11 -code-completion-at=%s:11:21 %s | FileCheck --check-prefix=CHECK-METHOD-QUALIFIER %s
658f4d399cSAlex Lorenz // RUN: %clang_cc1 -std=c++11 -code-completion-at=%s:15:32 %s | FileCheck --check-prefix=CHECK-METHOD-QUALIFIER %s
668f4d399cSAlex Lorenz // RUN: %clang_cc1 -std=c++11 -code-completion-at=%s:25:24 %s | FileCheck --check-prefix=CHECK-METHOD-QUALIFIER %s
678f4d399cSAlex Lorenz // CHECK-METHOD-QUALIFIER: final
688f4d399cSAlex Lorenz // CHECK-METHOD-QUALIFIER: noexcept
698f4d399cSAlex Lorenz // CHECK-METHOD-QUALIFIER: override
708f4d399cSAlex Lorenz
718f4d399cSAlex Lorenz // RUN: %clang_cc1 -std=c++11 -code-completion-at=%s:25:33 %s | FileCheck --check-prefix=CHECK-OVERRIDE-SPECIFIED %s
728f4d399cSAlex Lorenz // CHECK-OVERRIDE-SPECIFIED: final
738f4d399cSAlex Lorenz // CHECK-OVERRIDE-SPECIFIED: noexcept
748f4d399cSAlex Lorenz // CHECK-OVERRIDE-SPECIFIED-NOT: override
758f4d399cSAlex Lorenz
768f4d399cSAlex Lorenz // RUN: %clang_cc1 -std=c++11 -code-completion-at=%s:25:39 %s | FileCheck --check-prefix=CHECK-OVERRIDE-FINAL-SPECIFIED %s
778f4d399cSAlex Lorenz // CHECK-OVERRIDE-FINAL-SPECIFIED: noexcept
788f4d399cSAlex Lorenz // CHECK-OVERRIDE-FINAL-SPECIFIED-NOT: final
798f4d399cSAlex Lorenz // CHECK-OVERRIDE-FINAL-SPECIFIED-NOT: override
80