summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/ExprClassification.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Fix classification of statement expressions.Douglas Gregor2010-09-151-1/+1
| | | | llvm-svn: 113917
* RHS of property expression assignment requiresFariborz Jahanian2010-09-141-1/+2
| | | | | | | copy initialization before passing it to a setter. Fixes radar 8427922. llvm-svn: 113885
* Eliminate the default case in the expression-classification code, soDouglas Gregor2010-09-141-7/+65
| | | | | | | | that we're sure to keep it updated when new expression kinds emerge. Also fixes a few little bugs in the classification of expressions. llvm-svn: 113864
* property reference expression used on lhs of assignmentFariborz Jahanian2010-09-091-1/+2
| | | | | | | | follows objective's semantics and is not overload'able with an assignment operator. Fixes a crash and a missing diagnostics. Radar 8379892. llvm-svn: 113555
* Propagate whether an id-expression is the immediate argument ofJohn McCall2010-08-271-0/+4
| | | | | | | | | | | | | | | | | | | an '&' expression from the second caller of ActOnIdExpression. Teach template argument deduction that an overloaded id-expression doesn't give a valid type for deduction purposes to a non-static member function unless the expression has the correct syntactic form. Teach ActOnIdExpression that it shouldn't try to create implicit member expressions for '&function', because this isn't a permitted form of use for member functions. Teach CheckAddressOfOperand to diagnose these more carefully. Some of these cases aren't reachable right now because earlier diagnostics interrupt them. llvm-svn: 112258
* GCC didn't care for my attempt at API compatibility, so brute-force everythingJohn McCall2010-08-251-9/+9
| | | | | | to the new constants. llvm-svn: 112047
* More incremental progress towards not including Expr.h in Sema.h.John McCall2010-08-251-4/+4
| | | | llvm-svn: 112044
* Update ImplicitCastExpr to be able to represent an XValue.Sebastian Redl2010-07-201-3/+9
| | | | llvm-svn: 108807
* Reinstate the fix for PR7556. A silly use of isTrivial() wasDouglas Gregor2010-07-081-1/+1
| | | | | | suppressing copies of objects with trivial copy constructors. llvm-svn: 107857
* Revert r107828 and r107827, the fix for PR7556, which seems to beDouglas Gregor2010-07-071-1/+1
| | | | | | breaking bootstrap on Linux. llvm-svn: 107837
* Rename CXXZeroInitValueExpr to CXXScalarValueInitExpr, to reflect itsDouglas Gregor2010-07-071-1/+1
| | | | | | newly-narrowed scope. No functionality change. llvm-svn: 107828
* Prefer llvm_unreachable(...) to assert(false && ...). This is important asChandler Carruth2010-06-291-5/+6
| | | | | | without it we might exit a non-void function without returning. llvm-svn: 107106
* Introduce Expr::Classify and Expr::ClassifyModifiable, which determine the ↵Sebastian Redl2010-06-281-0/+470
classification of an expression under the C++0x taxology (value category). Reimplement isLvalue and isModifiableLvalue using these functions. No regressions in the test suite from this, and my rough performance check doesn't show any regressions either. llvm-svn: 107007
OpenPOWER on IntegriCloud