forked from OSchip/llvm-project
parent
e173d44137
commit
6b6185b18f
|
@ -57,7 +57,6 @@ public:
|
|||
};
|
||||
|
||||
class DeclGroupRef {
|
||||
protected:
|
||||
enum Kind { SingleDeclKind=0x0, DeclGroupKind=0x1, Mask=0x1 };
|
||||
Decl* D;
|
||||
|
||||
|
|
|
@ -225,7 +225,6 @@ public:
|
|||
/// the first statement can be an expression or a declaration.
|
||||
///
|
||||
class DeclStmt : public Stmt {
|
||||
protected:
|
||||
DeclGroupRef DG;
|
||||
SourceLocation StartLoc, EndLoc;
|
||||
public:
|
||||
|
@ -243,6 +242,9 @@ public:
|
|||
|
||||
const Decl *getSingleDecl() const { return DG.getSingleDecl(); }
|
||||
Decl *getSingleDecl() { return DG.getSingleDecl(); }
|
||||
|
||||
const DeclGroupRef getDeclGroup() const { return DG; }
|
||||
DeclGroupRef getDeclGroup() { return DG; }
|
||||
|
||||
SourceLocation getStartLoc() const { return StartLoc; }
|
||||
SourceLocation getEndLoc() const { return EndLoc; }
|
||||
|
|
|
@ -363,15 +363,12 @@ CFGBlock* CFGBuilder::WalkAST(Stmt* Terminator, bool AlwaysAddStmt = false) {
|
|||
return WalkAST_VisitDeclSubExpr(DS->getSingleDecl());
|
||||
}
|
||||
|
||||
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);
|
||||
typedef llvm::SmallVector<Decl*,10> BufTy;
|
||||
BufTy Buf(DS->decl_begin(), DS->decl_end());
|
||||
|
||||
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.
|
||||
|
@ -384,8 +381,7 @@ CFGBlock* CFGBuilder::WalkAST(Stmt* Terminator, bool AlwaysAddStmt = false) {
|
|||
Decl* D = *I;
|
||||
void* Mem = cfg->getAllocator().Allocate(sizeof(DeclStmt), A);
|
||||
|
||||
DeclStmt* DS = new (Mem) DeclStmt(DG, D->getLocation(),
|
||||
GetEndLoc(D));
|
||||
DeclStmt* DS = new (Mem) DeclStmt(DG, D->getLocation(), GetEndLoc(D));
|
||||
|
||||
// Append the fake DeclStmt to block.
|
||||
Block->appendStmt(DS);
|
||||
|
|
Loading…
Reference in New Issue