member-access.cpp 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. struct Base1 {
  2. int member1;
  3. float member2;
  4. };
  5. struct Base2 {
  6. int member1;
  7. double member3;
  8. void memfun1(int);
  9. };
  10. struct Base3 : Base1, Base2 {
  11. void memfun1(float);
  12. void memfun1(double) const;
  13. void memfun2(int);
  14. };
  15. struct Derived : Base3 {
  16. int member4;
  17. int memfun3(int);
  18. };
  19. class Proxy {
  20. public:
  21. Derived *operator->() const;
  22. };
  23. void test(const Proxy &p) {
  24. p->
  25. // RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:29:6 %s -o - | FileCheck -check-prefix=CHECK-CC1 %s
  26. // CHECK-CC1: Base1 : Base1::
  27. // CHECK-CC1: member1 : [#int#][#Base1::#]member1
  28. // CHECK-CC1: member1 : [#int#][#Base2::#]member1
  29. // CHECK-CC1: member2 : [#float#][#Base1::#]member2
  30. // CHECK-CC1: member3
  31. // CHECK-CC1: member4
  32. // CHECK-CC1: memfun1 : [#void#][#Base3::#]memfun1(<#float#>)
  33. // CHECK-CC1: memfun1 : [#void#][#Base3::#]memfun1(<#double#>)[# const#]
  34. // CHECK-CC1: memfun1 (Hidden) : [#void#]Base2::memfun1(<#int#>)
  35. // CHECK-CC1: memfun2 : [#void#][#Base3::#]memfun2(<#int#>)
  36. // CHECK-CC1: memfun3 : [#int#]memfun3(<#int#>)