summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeCompletion
diff options
context:
space:
mode:
authorIlya Biryukov <ibiryukov@google.com>2018-12-05 17:38:39 +0000
committerIlya Biryukov <ibiryukov@google.com>2018-12-05 17:38:39 +0000
commit98397555a51b61fabfc992ebcb054072eb5720c2 (patch)
tree270efda3a97f641b3226eb7b3322324f4767bcee /clang/test/CodeCompletion
parent899b3afacaec07d06e3923a722681ab2e5474b40 (diff)
downloadbcm5719-llvm-98397555a51b61fabfc992ebcb054072eb5720c2.tar.gz
bcm5719-llvm-98397555a51b61fabfc992ebcb054072eb5720c2.zip
[CodeComplete] Fix a crash in access checks of inner classes
Summary: The crash was introduced in r348135. Reviewers: kadircet Reviewed By: kadircet Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D55260 llvm-svn: 348387
Diffstat (limited to 'clang/test/CodeCompletion')
-rw-r--r--clang/test/CodeCompletion/accessibility.cpp49
1 files changed, 49 insertions, 0 deletions
diff --git a/clang/test/CodeCompletion/accessibility.cpp b/clang/test/CodeCompletion/accessibility.cpp
index 754d8228ad4..a050efc9a73 100644
--- a/clang/test/CodeCompletion/accessibility.cpp
+++ b/clang/test/CodeCompletion/accessibility.cpp
@@ -71,3 +71,52 @@ class Y : public X {
// RUN: | FileCheck -check-prefix=UNRELATED %s
}
};
+
+class Outer {
+ public:
+ static int pub;
+ protected:
+ static int prot;
+ private:
+ static int priv;
+
+ class Inner {
+ int test() {
+ Outer::pub = 10;
+ // RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:85:14 %s -o - \
+ // RUN: | FileCheck -check-prefix=OUTER %s
+ // OUTER: priv : [#int#]priv
+ // OUTER: prot : [#int#]prot
+ // OUTER: pub : [#int#]pub
+
+ // Also check the unqualified case.
+ // RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:85:1 %s -o - \
+ // RUN: | FileCheck -check-prefix=OUTER %s
+ }
+ };
+};
+
+class Base {
+public:
+ int pub;
+};
+
+class Accessible : public Base {
+};
+
+class Inaccessible : private Base {
+};
+
+class Test : public Accessible, public Inaccessible {
+ int test() {
+ this->Accessible::pub = 10;
+ // RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:112:23 %s -o - \
+ // RUN: | FileCheck -check-prefix=ACCESSIBLE %s
+ // ACCESSIBLE: pub (InBase)
+
+ this->Inaccessible::pub = 10;
+ // RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:117:25 %s -o - \
+ // RUN: | FileCheck -check-prefix=INACCESSIBLE %s
+ // INACCESSIBLE: pub (InBase,Inaccessible)
+ }
+};
OpenPOWER on IntegriCloud