summaryrefslogtreecommitdiff
path: root/test/Import
diff options
context:
space:
mode:
authorRaphael Isemann <teemperor@gmail.com>2018-08-16 18:22:21 +0000
committerRaphael Isemann <teemperor@gmail.com>2018-08-16 18:22:21 +0000
commit5bdeac6e5048204c9f2bf791b3f15535b3f0426c (patch)
tree649f075f3b03940d76426c9a6b6207459793d375 /test/Import
parent557c56b21ed744ce5b14a81125e1f318308e2955 (diff)
downloadclang-5bdeac6e5048204c9f2bf791b3f15535b3f0426c.tar.gz
[ASTImporter] Add test for member pointer types.
Reviewers: a.sidorin, martong Reviewed By: martong Subscribers: rnkovacs, martong, cfe-commits Differential Revision: https://reviews.llvm.org/D50792 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@339919 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Import')
-rw-r--r--test/Import/cxx-member-pointers/Inputs/S.cpp7
-rw-r--r--test/Import/cxx-member-pointers/test.cpp16
2 files changed, 23 insertions, 0 deletions
diff --git a/test/Import/cxx-member-pointers/Inputs/S.cpp b/test/Import/cxx-member-pointers/Inputs/S.cpp
new file mode 100644
index 0000000000..afee60de32
--- /dev/null
+++ b/test/Import/cxx-member-pointers/Inputs/S.cpp
@@ -0,0 +1,7 @@
+struct S {
+ int i;
+};
+
+int S::*iptr() {
+ return &S::i;
+}
diff --git a/test/Import/cxx-member-pointers/test.cpp b/test/Import/cxx-member-pointers/test.cpp
new file mode 100644
index 0000000000..253c90bdcf
--- /dev/null
+++ b/test/Import/cxx-member-pointers/test.cpp
@@ -0,0 +1,16 @@
+// RUN: clang-import-test -dump-ast -import %S/Inputs/S.cpp -expression %s | FileCheck %s
+
+// CHECK: VarDecl
+// CHECK-SAME: int S::*
+// CHECK-NEXT: CallExpr
+// CHECK-NEXT: ImplicitCastExpr
+// CHECK-SAME: int S::*(*)()
+// CHECK-NEXT: DeclRefExpr
+// CHECK-SAME: int S::*()
+
+void expr() {
+ int S::*p = iptr();
+ S s;
+ s.i = 3;
+ int i = s.*p;
+}