diff options
author | Douglas Gregor <dgregor@apple.com> | 2008-12-22 05:46:06 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2008-12-22 05:46:06 +0000 |
commit | 88a3514f36de96b19cdf50141c640df1a5f13f6c (patch) | |
tree | a15713eacba3dc51acc9af629d852ace77db9ea7 /lib/AST/ExprCXX.cpp | |
parent | b595509bf5c07b65616d9c7ef26dca4858768ac7 (diff) |
Add support for calls to overloaded member functions. Things to note:
- Overloading has to cope with having both static and non-static
member functions in the overload set.
- The call may or may not have an implicit object argument,
depending on the syntax (x.f() vs. f()) and the context (static
vs. non-static member function).
- We now generate MemberExprs for implicit member access expression.
- We now cope with mutable whenever we're building MemberExprs.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61329 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/AST/ExprCXX.cpp')
-rw-r--r-- | lib/AST/ExprCXX.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/AST/ExprCXX.cpp b/lib/AST/ExprCXX.cpp index b5d5b4c12f..4cc5c741cf 100644 --- a/lib/AST/ExprCXX.cpp +++ b/lib/AST/ExprCXX.cpp @@ -166,6 +166,14 @@ SourceRange CXXOperatorCallExpr::getSourceRange() const { } } +Expr *CXXMemberCallExpr::getImplicitObjectArgument() { + if (MemberExpr *MemExpr = dyn_cast<MemberExpr>(getCallee()->IgnoreParens())) + return MemExpr->getBase(); + + // FIXME: Will eventually need to cope with member pointers. + return 0; +} + //===----------------------------------------------------------------------===// // Named casts //===----------------------------------------------------------------------===// |