diff options
| author | Anders Carlsson <andersca@mac.com> | 2009-08-16 03:42:12 +0000 | 
|---|---|---|
| committer | Anders Carlsson <andersca@mac.com> | 2009-08-16 03:42:12 +0000 | 
| commit | 8c84c206d95e8641921f70cf66ba9682c5b8e0a4 (patch) | |
| tree | e81ddcbe3cb18cb0910e70ba00ac100a62ddf2a8 /clang/lib | |
| parent | c659caa8484911660c23f4e0633f70ff25b99d77 (diff) | |
| download | bcm5719-llvm-8c84c206d95e8641921f70cf66ba9682c5b8e0a4.tar.gz bcm5719-llvm-8c84c206d95e8641921f70cf66ba9682c5b8e0a4.zip  | |
Add MaybeBindToTemporary calls for member call expressions.
llvm-svn: 79171
Diffstat (limited to 'clang/lib')
| -rw-r--r-- | clang/lib/AST/Expr.cpp | 3 | ||||
| -rw-r--r-- | clang/lib/Sema/SemaOverload.cpp | 4 | 
2 files changed, 5 insertions, 2 deletions
diff --git a/clang/lib/AST/Expr.cpp b/clang/lib/AST/Expr.cpp index cfcbca47301..b92ecac6a31 100644 --- a/clang/lib/AST/Expr.cpp +++ b/clang/lib/AST/Expr.cpp @@ -800,6 +800,9 @@ Expr::isLvalueResult Expr::isLvalueInternal(ASTContext &Ctx) const {    case CXXTypeidExprClass:      // C++ 5.2.8p1: The result of a typeid expression is an lvalue of ...      return LV_Valid; +  case CXXBindTemporaryExprClass: +    return cast<CXXBindTemporaryExpr>(this)->getSubExpr()-> +      isLvalueInternal(Ctx);    case ConditionalOperatorClass: {      // Complicated handling is only for C++.      if (!Ctx.getLangOptions().CPlusPlus) diff --git a/clang/lib/Sema/SemaOverload.cpp b/clang/lib/Sema/SemaOverload.cpp index d45e54a4a53..2b507fb303a 100644 --- a/clang/lib/Sema/SemaOverload.cpp +++ b/clang/lib/Sema/SemaOverload.cpp @@ -4345,8 +4345,8 @@ Sema::BuildCallToMemberFunction(Scope *S, Expr *MemExprE,    if (CheckFunctionCall(Method, TheCall.get()))      return true; -   -  return TheCall.release(); + +  return MaybeBindToTemporary(TheCall.release()).release();  }  /// BuildCallToObjectOfClassType - Build a call to an object of class  | 

