Index: cfe/trunk/test/Import/cxx-member-pointers/Inputs/S.cpp =================================================================== --- cfe/trunk/test/Import/cxx-member-pointers/Inputs/S.cpp +++ cfe/trunk/test/Import/cxx-member-pointers/Inputs/S.cpp @@ -0,0 +1,7 @@ +struct S { + int i; +}; + +int S::*iptr() { + return &S::i; +} Index: cfe/trunk/test/Import/cxx-member-pointers/test.cpp =================================================================== --- cfe/trunk/test/Import/cxx-member-pointers/test.cpp +++ cfe/trunk/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; +}