diff options
| -rw-r--r-- | clang/test/Import/cxx-member-pointers/Inputs/S.cpp | 7 | ||||
| -rw-r--r-- | clang/test/Import/cxx-member-pointers/test.cpp | 16 | 
2 files changed, 23 insertions, 0 deletions
diff --git a/clang/test/Import/cxx-member-pointers/Inputs/S.cpp b/clang/test/Import/cxx-member-pointers/Inputs/S.cpp new file mode 100644 index 00000000000..afee60de326 --- /dev/null +++ b/clang/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/clang/test/Import/cxx-member-pointers/test.cpp b/clang/test/Import/cxx-member-pointers/test.cpp new file mode 100644 index 00000000000..253c90bdcf7 --- /dev/null +++ b/clang/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; +}  | 

