clang API Documentation

Classes | Typedefs | Functions
clang::arcmt::trans Namespace Reference

Classes

class  BodyContext
class  ObjCImplementationContext
class  ASTTraverser
class  MigrationContext
class  PropertyRewriteTraverser
class  BlockObjCVariableTraverser
class  GCAttrsTraverser
class  GCCollectableCallsTraverser
class  BodyTransform

Typedefs

typedef llvm::DenseSet< Expr * > ExprSet

Functions

void rewriteAutoreleasePool (MigrationPass &pass)
void rewriteUnbridgedCasts (MigrationPass &pass)
void makeAssignARCSafe (MigrationPass &pass)
void removeRetainReleaseDeallocFinalize (MigrationPass &pass)
void removeZeroOutPropsInDeallocFinalize (MigrationPass &pass)
void rewriteUnusedInitDelegate (MigrationPass &pass)
void checkAPIUses (MigrationPass &pass)
void removeEmptyStatementsAndDeallocFinalize (MigrationPass &pass)
bool canApplyWeak (ASTContext &Ctx, QualType type, bool AllowOnUnknownClass=false)
 Determine whether we can add weak to the given type.
bool isPlusOneAssign (const BinaryOperator *E)
SourceLocation findLocationAfterSemi (SourceLocation loc, ASTContext &Ctx)
 'Loc' is the end of a statement range. This returns the location immediately after the semicolon following the statement. If no semicolon is found or the location is inside a macro, the returned source location will be invalid.
SourceLocation findSemiAfterLocation (SourceLocation loc, ASTContext &Ctx)
bool hasSideEffects (Expr *E, ASTContext &Ctx)
bool isGlobalVar (Expr *E)
StringRef getNilString (ASTContext &Ctx)
 Returns "nil" or "0" if 'nil' macro is not actually defined.
void clearRefsIn (Stmt *S, ExprSet &refs)
template<typename iterator >
void clearRefsIn (iterator begin, iterator end, ExprSet &refs)
void collectRefs (ValueDecl *D, Stmt *S, ExprSet &refs)
void collectRemovables (Stmt *S, ExprSet &exprs)

Typedef Documentation

typedef llvm::DenseSet<Expr *> clang::arcmt::trans::ExprSet

Definition at line 190 of file Transforms.h.


Function Documentation

bool clang::arcmt::trans::canApplyWeak ( ASTContext Ctx,
QualType  type,
bool  AllowOnUnknownClass = false 
)
void clang::arcmt::trans::checkAPIUses ( MigrationPass pass)
void clang::arcmt::trans::clearRefsIn ( Stmt S,
ExprSet refs 
)

Definition at line 285 of file Transforms.cpp.

Referenced by clearRefsIn().

template<typename iterator >
void clang::arcmt::trans::clearRefsIn ( iterator  begin,
iterator  end,
ExprSet &  refs 
)

Definition at line 194 of file Transforms.h.

References clearRefsIn().

void clang::arcmt::trans::collectRefs ( ValueDecl D,
Stmt S,
ExprSet refs 
)

Definition at line 289 of file Transforms.cpp.

void clang::arcmt::trans::collectRemovables ( Stmt S,
ExprSet exprs 
)

Definition at line 293 of file Transforms.cpp.

SourceLocation clang::arcmt::trans::findLocationAfterSemi ( SourceLocation  loc,
ASTContext Ctx 
)

'Loc' is the end of a statement range. This returns the location immediately after the semicolon following the statement. If no semicolon is found or the location is inside a macro, the returned source location will be invalid.

Definition at line 105 of file Transforms.cpp.

References findSemiAfterLocation(), clang::SourceLocation::getLocWithOffset(), and clang::SourceLocation::isInvalid().

SourceLocation clang::arcmt::trans::findSemiAfterLocation ( SourceLocation  loc,
ASTContext Ctx 
)
  • Loc is the end of a statement range. This returns the location of the semicolon following the statement. If no semicolon is found or the location is inside a macro, the returned source location will be invalid.

Definition at line 117 of file Transforms.cpp.

References clang::SourceManager::getBufferData(), clang::SourceManager::getDecomposedLoc(), clang::ASTContext::getLangOpts(), clang::Lexer::getLocForEndOfToken(), clang::SourceManager::getLocForStartOfFile(), clang::ASTContext::getSourceManager(), clang::Lexer::isAtEndOfMacroExpansion(), and clang::SourceLocation::isMacroID().

Referenced by findLocationAfterSemi(), and isEmptyARCMTMacroStatement().

StringRef clang::arcmt::trans::getNilString ( ASTContext Ctx)

Returns "nil" or "0" if 'nil' macro is not actually defined.

Definition at line 190 of file Transforms.cpp.

References clang::IdentifierTable::get(), clang::IdentifierInfo::hasMacroDefinition(), and clang::ASTContext::Idents.

bool clang::arcmt::trans::hasSideEffects ( Expr E,
ASTContext Ctx 
)
bool clang::arcmt::trans::isGlobalVar ( Expr E)

Definition at line 178 of file Transforms.cpp.

References clang::ExternalLinkage, and clang::Expr::IgnoreParenCasts().

bool clang::arcmt::trans::isPlusOneAssign ( const BinaryOperator E)
void clang::arcmt::trans::makeAssignARCSafe ( MigrationPass pass)
void clang::arcmt::trans::removeEmptyStatementsAndDeallocFinalize ( MigrationPass pass)
void clang::arcmt::trans::removeRetainReleaseDeallocFinalize ( MigrationPass pass)
void clang::arcmt::trans::removeZeroOutPropsInDeallocFinalize ( MigrationPass pass)
void clang::arcmt::trans::rewriteAutoreleasePool ( MigrationPass pass)
void clang::arcmt::trans::rewriteUnbridgedCasts ( MigrationPass pass)
void clang::arcmt::trans::rewriteUnusedInitDelegate ( MigrationPass pass)