forked from OSchip/llvm-project
e64aee87a0
The description of what the various Expr::Ignore* do has drifted from the actual implementation. Inspection reveals that IgnoreParenImpCasts() is not equivalent to doing IgnoreParens() + IgnoreImpCasts() until reaching a fixed point, but IgnoreParenCasts() is equivalent to doing IgnoreParens() + IgnoreCasts() until reaching a fixed point. There is also a fair amount of duplication in the various Expr::Ignore* functions which increase the chance of further future inconsistencies. In preparation for the next patch which will factor out the implementation of the various Expr::Ignore*, do the following cleanups: Remove Stmt::IgnoreImplicit, in favor of Expr::IgnoreImplicit. IgnoreImplicit is the only function among all of the Expr::Ignore* which is available in Stmt. There are only a few users of Stmt::IgnoreImplicit. They can just use instead Expr::IgnoreImplicit like they have to do for the other Ignore*. Move Expr::IgnoreImpCasts() from Expr.h to Expr.cpp. This made no difference in the run-time with my usual benchmark (-fsyntax-only on all of Boost). While we are at it, make IgnoreParenNoopCasts take a const reference to the ASTContext for const correctness. Update the comments to match what the Expr::Ignore* are actually doing. I am not sure that listing exactly what each Expr::Ignore* do is optimal, but it certainly looks better than the current state which is in my opinion between misleading and just plain wrong. The whole patch is NFC (if you count removing Stmt::IgnoreImplicit as NFC). Differential Revision: https://reviews.llvm.org/D57266 Reviewed By: aaron.ballman llvm-svn: 353006 |
||
---|---|---|
.. | ||
ARCMT.cpp | ||
ARCMTActions.cpp | ||
CMakeLists.txt | ||
FileRemapper.cpp | ||
Internals.h | ||
ObjCMT.cpp | ||
PlistReporter.cpp | ||
TransAPIUses.cpp | ||
TransARCAssign.cpp | ||
TransAutoreleasePool.cpp | ||
TransBlockObjCVariable.cpp | ||
TransEmptyStatementsAndDealloc.cpp | ||
TransGCAttrs.cpp | ||
TransGCCalls.cpp | ||
TransProperties.cpp | ||
TransProtectedScope.cpp | ||
TransRetainReleaseDealloc.cpp | ||
TransUnbridgedCasts.cpp | ||
TransUnusedInitDelegate.cpp | ||
TransZeroOutPropsInDealloc.cpp | ||
TransformActions.cpp | ||
Transforms.cpp | ||
Transforms.h |