зеркало из https://github.com/microsoft/clang-1.git
rename some methods.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67923 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Родитель
fe95deaf66
Коммит
7e24e82a70
|
@ -235,14 +235,14 @@ public:
|
|||
|
||||
virtual void Destroy(ASTContext& Ctx);
|
||||
|
||||
/// hasSolitaryDecl - This method returns true if this DeclStmt refers
|
||||
/// isSingleDecl - This method returns true if this DeclStmt refers
|
||||
/// to a single Decl.
|
||||
bool hasSolitaryDecl() const {
|
||||
bool isSingleDecl() const {
|
||||
return DG.isSingleDecl();
|
||||
}
|
||||
|
||||
const Decl* getSolitaryDecl() const { return DG.getSingleDecl(); }
|
||||
Decl *getSolitaryDecl() { return DG.getSingleDecl(); }
|
||||
const Decl *getSingleDecl() const { return DG.getSingleDecl(); }
|
||||
Decl *getSingleDecl() { return DG.getSingleDecl(); }
|
||||
|
||||
SourceLocation getStartLoc() const { return StartLoc; }
|
||||
SourceLocation getEndLoc() const { return EndLoc; }
|
||||
|
|
|
@ -358,41 +358,40 @@ CFGBlock* CFGBuilder::WalkAST(Stmt* Terminator, bool AlwaysAddStmt = false) {
|
|||
|
||||
case Stmt::DeclStmtClass: {
|
||||
DeclStmt *DS = cast<DeclStmt>(Terminator);
|
||||
if (DS->hasSolitaryDecl()) {
|
||||
if (DS->isSingleDecl()) {
|
||||
Block->appendStmt(Terminator);
|
||||
return WalkAST_VisitDeclSubExpr(DS->getSolitaryDecl());
|
||||
return WalkAST_VisitDeclSubExpr(DS->getSingleDecl());
|
||||
}
|
||||
else {
|
||||
typedef llvm::SmallVector<Decl*,10> BufTy;
|
||||
BufTy Buf;
|
||||
CFGBlock* B = 0;
|
||||
|
||||
typedef llvm::SmallVector<Decl*,10> BufTy;
|
||||
BufTy Buf;
|
||||
CFGBlock* B = 0;
|
||||
|
||||
// FIXME: Add a reverse iterator for DeclStmt to avoid this
|
||||
// extra copy.
|
||||
for (DeclStmt::decl_iterator DI=DS->decl_begin(), DE=DS->decl_end();
|
||||
DI != DE; ++DI)
|
||||
Buf.push_back(*DI);
|
||||
// FIXME: Add a reverse iterator for DeclStmt to avoid this
|
||||
// extra copy.
|
||||
for (DeclStmt::decl_iterator DI=DS->decl_begin(), DE=DS->decl_end();
|
||||
DI != DE; ++DI)
|
||||
Buf.push_back(*DI);
|
||||
|
||||
for (BufTy::reverse_iterator I=Buf.rbegin(), E=Buf.rend(); I!=E; ++I) {
|
||||
// Get the alignment of the new DeclStmt, padding out to >=8 bytes.
|
||||
unsigned A = llvm::AlignOf<DeclStmt>::Alignment < 8
|
||||
? 8 : llvm::AlignOf<DeclStmt>::Alignment;
|
||||
|
||||
for (BufTy::reverse_iterator I=Buf.rbegin(), E=Buf.rend(); I!=E; ++I) {
|
||||
// Get the alignment of the new DeclStmt, padding out to >=8 bytes.
|
||||
unsigned A = llvm::AlignOf<DeclStmt>::Alignment < 8
|
||||
? 8 : llvm::AlignOf<DeclStmt>::Alignment;
|
||||
|
||||
// Allocate the DeclStmt using the BumpPtrAllocator. It will
|
||||
// get automatically freed with the CFG.
|
||||
DeclGroupRef DG(*I);
|
||||
Decl* D = *I;
|
||||
void* Mem = cfg->getAllocator().Allocate(sizeof(DeclStmt), A);
|
||||
|
||||
DeclStmt* DS = new (Mem) DeclStmt(DG, D->getLocation(),
|
||||
GetEndLoc(D));
|
||||
|
||||
// Append the fake DeclStmt to block.
|
||||
Block->appendStmt(DS);
|
||||
B = WalkAST_VisitDeclSubExpr(D);
|
||||
}
|
||||
return B;
|
||||
// Allocate the DeclStmt using the BumpPtrAllocator. It will
|
||||
// get automatically freed with the CFG.
|
||||
DeclGroupRef DG(*I);
|
||||
Decl* D = *I;
|
||||
void* Mem = cfg->getAllocator().Allocate(sizeof(DeclStmt), A);
|
||||
|
||||
DeclStmt* DS = new (Mem) DeclStmt(DG, D->getLocation(),
|
||||
GetEndLoc(D));
|
||||
|
||||
// Append the fake DeclStmt to block.
|
||||
Block->appendStmt(DS);
|
||||
B = WalkAST_VisitDeclSubExpr(D);
|
||||
}
|
||||
return B;
|
||||
}
|
||||
|
||||
case Stmt::AddrLabelExprClass: {
|
||||
|
|
|
@ -1534,7 +1534,7 @@ void GRExprEngine::VisitObjCForCollectionStmt(ObjCForCollectionStmt* S,
|
|||
SVal ElementV;
|
||||
|
||||
if (DeclStmt* DS = dyn_cast<DeclStmt>(elem)) {
|
||||
VarDecl* ElemD = cast<VarDecl>(DS->getSolitaryDecl());
|
||||
VarDecl* ElemD = cast<VarDecl>(DS->getSingleDecl());
|
||||
assert (ElemD->getInit() == 0);
|
||||
ElementV = getStateManager().GetLValue(GetState(Pred), ElemD);
|
||||
VisitObjCForCollectionStmtAux(S, Pred, Dst, ElementV);
|
||||
|
|
|
@ -194,7 +194,7 @@ TransferFuncs::BlockStmt_VisitObjCForCollectionStmt(ObjCForCollectionStmt* S) {
|
|||
VarDecl* VD = 0;
|
||||
|
||||
if (DeclStmt* DS = dyn_cast<DeclStmt>(Element))
|
||||
VD = cast<VarDecl>(DS->getSolitaryDecl());
|
||||
VD = cast<VarDecl>(DS->getSingleDecl());
|
||||
else {
|
||||
Expr* ElemExpr = cast<Expr>(Element)->IgnoreParens();
|
||||
if ((DR = dyn_cast<DeclRefExpr>(ElemExpr)))
|
||||
|
|
|
@ -193,7 +193,7 @@ TransferFuncs::BlockStmt_VisitObjCForCollectionStmt(ObjCForCollectionStmt* S) {
|
|||
VarDecl* VD = 0;
|
||||
|
||||
if (DeclStmt* DS = dyn_cast<DeclStmt>(Element))
|
||||
VD = cast<VarDecl>(DS->getSolitaryDecl());
|
||||
VD = cast<VarDecl>(DS->getSingleDecl());
|
||||
else {
|
||||
Expr* ElemExpr = cast<Expr>(Element)->IgnoreParens();
|
||||
|
||||
|
|
|
@ -436,7 +436,7 @@ void CodeGenFunction::EmitObjCForCollectionStmt(const ObjCForCollectionStmt &S){
|
|||
if (const DeclStmt *SD = dyn_cast<DeclStmt>(S.getElement())) {
|
||||
EmitStmt(SD);
|
||||
assert(HaveInsertPoint() && "DeclStmt destroyed insert point!");
|
||||
const Decl* D = SD->getSolitaryDecl();
|
||||
const Decl* D = SD->getSingleDecl();
|
||||
ElementTy = cast<ValueDecl>(D)->getType();
|
||||
DeclAddress = LocalDeclMap[D];
|
||||
} else {
|
||||
|
|
|
@ -627,11 +627,11 @@ Sema::ActOnObjCForCollectionStmt(SourceLocation ForLoc,
|
|||
if (First) {
|
||||
QualType FirstType;
|
||||
if (DeclStmt *DS = dyn_cast<DeclStmt>(First)) {
|
||||
if (!DS->hasSolitaryDecl())
|
||||
if (!DS->isSingleDecl())
|
||||
return StmtError(Diag((*DS->decl_begin())->getLocation(),
|
||||
diag::err_toomany_element_decls));
|
||||
|
||||
Decl *D = DS->getSolitaryDecl();
|
||||
Decl *D = DS->getSingleDecl();
|
||||
FirstType = cast<ValueDecl>(D)->getType();
|
||||
// C99 6.8.5p3: The declaration part of a 'for' statement shall only
|
||||
// declare identifiers for objects having storage class 'auto' or
|
||||
|
|
|
@ -1306,7 +1306,7 @@ Stmt *RewriteObjC::RewriteObjCForCollectionStmt(ObjCForCollectionStmt *S,
|
|||
buf = "\n{\n\t";
|
||||
if (DeclStmt *DS = dyn_cast<DeclStmt>(S->getElement())) {
|
||||
// type elem;
|
||||
NamedDecl* D = cast<NamedDecl>(DS->getSolitaryDecl());
|
||||
NamedDecl* D = cast<NamedDecl>(DS->getSingleDecl());
|
||||
QualType ElementType = cast<ValueDecl>(D)->getType();
|
||||
elementTypeAsString = ElementType.getAsString();
|
||||
buf += elementTypeAsString;
|
||||
|
|
Загрузка…
Ссылка в новой задаче