forked from OSchip/llvm-project
Add DeclStmt::hasSolitaryDecl() and DeclStmt::getSolitaryDecl()
llvm-svn: 57204
This commit is contained in:
parent
6271b0a83c
commit
acf920dd39
|
@ -140,6 +140,7 @@ public:
|
|||
/// the first statement can be an expression or a declaration.
|
||||
///
|
||||
class DeclStmt : public Stmt {
|
||||
protected:
|
||||
ScopedDecl *TheDecl;
|
||||
SourceLocation StartLoc, EndLoc;
|
||||
public:
|
||||
|
@ -148,8 +149,24 @@ public:
|
|||
|
||||
virtual void Destroy(ASTContext& Ctx);
|
||||
|
||||
// hasSolitaryDecl - This method returns true if this DeclStmt refers
|
||||
// to a single Decl.
|
||||
bool hasSolitaryDecl() const;
|
||||
|
||||
const ScopedDecl *getDecl() const { return TheDecl; }
|
||||
ScopedDecl *getDecl() { return TheDecl; }
|
||||
|
||||
const ScopedDecl* getSolitaryDecl() const {
|
||||
assert (hasSolitaryDecl() &&
|
||||
"Caller assumes this DeclStmt points to one Decl*");
|
||||
return TheDecl;
|
||||
}
|
||||
|
||||
ScopedDecl* getSolitaryDecl() {
|
||||
assert (hasSolitaryDecl() &&
|
||||
"Caller assumes this DeclStmt points to one Decl*");
|
||||
return TheDecl;
|
||||
}
|
||||
|
||||
SourceLocation getStartLoc() const { return StartLoc; }
|
||||
SourceLocation getEndLoc() const { return EndLoc; }
|
||||
|
|
|
@ -188,7 +188,7 @@ ObjCAtCatchStmt::ObjCAtCatchStmt(SourceLocation atCatchLoc,
|
|||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// DeclStmt
|
||||
Stmt::child_iterator DeclStmt::child_begin() { return getDecl(); }
|
||||
Stmt::child_iterator DeclStmt::child_begin() { return TheDecl; }
|
||||
Stmt::child_iterator DeclStmt::child_end() { return child_iterator(); }
|
||||
|
||||
DeclStmt::decl_iterator& DeclStmt::decl_iterator::operator++() {
|
||||
|
@ -196,6 +196,10 @@ DeclStmt::decl_iterator& DeclStmt::decl_iterator::operator++() {
|
|||
return *this;
|
||||
}
|
||||
|
||||
bool DeclStmt::hasSolitaryDecl() const {
|
||||
return TheDecl->getNextDeclarator() == 0;
|
||||
}
|
||||
|
||||
// NullStmt
|
||||
Stmt::child_iterator NullStmt::child_begin() { return child_iterator(); }
|
||||
Stmt::child_iterator NullStmt::child_end() { return child_iterator(); }
|
||||
|
|
Loading…
Reference in New Issue