// RUN: %clang_cc1 -emit-llvm-only %s
// Tests that Sema properly creates member-access expressions for
// these instead of bare FieldDecls.
structFoo{int myvalue;// We have to override these to get something with an lvalue result.
int&operator++(int);int&operator--(int);};structTest0{
Foo memfoo;int memint;int memarr[10];
Test0 *memptr;structMemClass{int a;} memstruct;int&memfun();voidtest(){int*p;
p =&Test0::memfoo++;
p =&Test0::memfoo--;
p =&Test0::memarr[1];
p =&Test0::memptr->memint;
p =&Test0::memstruct.a;
p =&Test0::memfun();}};voidtest0(){
Test0 mytest;
mytest.test();}namespacerdar9065289{typedefvoid(*FuncPtr)();structX0{};structX1{
X0* x0;
FuncPtr X0::*fptr;};voidf(X1 p){(p.x0->*(p.fptr))();}}