[cfe-commits] r69429 - in /cfe/trunk/lib/Sema: Sema.h SemaDecl.cpp
Chris Lattner
sabre at nondot.org
Sat Apr 18 00:36:42 PDT 2009
Author: lattner
Date: Sat Apr 18 02:36:39 2009
New Revision: 69429
URL: http://llvm.org/viewvc/llvm-project?rev=69429&view=rev
Log:
make scope checking be static functions instead of sema methods.
Modified:
cfe/trunk/lib/Sema/Sema.h
cfe/trunk/lib/Sema/SemaDecl.cpp
Modified: cfe/trunk/lib/Sema/Sema.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/Sema.h?rev=69429&r1=69428&r2=69429&view=diff
==============================================================================
--- cfe/trunk/lib/Sema/Sema.h (original)
+++ cfe/trunk/lib/Sema/Sema.h Sat Apr 18 02:36:39 2009
@@ -492,18 +492,6 @@
}
- void RecursiveCalcJumpScopes(llvm::DenseMap<Stmt*, void*>& LabelScopeMap,
- llvm::DenseMap<void*, Stmt*>& PopScopeMap,
- llvm::DenseMap<Stmt*, void*>& GotoScopeMap,
- std::vector<void*>& ScopeStack,
- Stmt* CurStmt);
-
- void RecursiveCalcLabelScopes(llvm::DenseMap<Stmt*, void*>& LabelScopeMap,
- llvm::DenseMap<void*, Stmt*>& PopScopeMap,
- std::vector<void*>& ScopeStack,
- Stmt* CurStmt,
- Stmt* ParentCompoundStmt);
-
/// Subroutines of ActOnDeclarator().
TypedefDecl *ParseTypedefDecl(Scope *S, Declarator &D, QualType T);
bool MergeTypeDefDecl(TypedefDecl *New, Decl *Old);
Modified: cfe/trunk/lib/Sema/SemaDecl.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaDecl.cpp?rev=69429&r1=69428&r2=69429&view=diff
==============================================================================
--- cfe/trunk/lib/Sema/SemaDecl.cpp (original)
+++ cfe/trunk/lib/Sema/SemaDecl.cpp Sat Apr 18 02:36:39 2009
@@ -2924,11 +2924,11 @@
}
-void Sema::RecursiveCalcLabelScopes(llvm::DenseMap<Stmt*, void*>& LabelScopeMap,
- llvm::DenseMap<void*, Stmt*>& PopScopeMap,
- std::vector<void*>& ScopeStack,
- Stmt* CurStmt,
- Stmt* ParentCompoundStmt) {
+static void RecursiveCalcLabelScopes(llvm::DenseMap<Stmt*, void*>& LabelScopeMap,
+ llvm::DenseMap<void*, Stmt*>& PopScopeMap,
+ std::vector<void*>& ScopeStack,
+ Stmt* CurStmt,
+ Stmt* ParentCompoundStmt, Sema &S) {
for (Stmt::child_iterator i = CurStmt->child_begin();
i != CurStmt->child_end(); ++i) {
if (!*i) continue;
@@ -2948,28 +2948,28 @@
LabelScopeMap[CurStmt] = ScopeStack.size() ? ScopeStack.back() : 0;
}
if (isa<DeclStmt>(*i)) continue;
- Stmt* CurCompound = isa<CompoundStmt>(*i) ? *i : ParentCompoundStmt;
+
+ Stmt *CurCompound = isa<CompoundStmt>(*i) ? *i : ParentCompoundStmt;
RecursiveCalcLabelScopes(LabelScopeMap, PopScopeMap, ScopeStack,
- *i, CurCompound);
+ *i, CurCompound, S);
}
- while (ScopeStack.size() && PopScopeMap[ScopeStack.back()] == CurStmt) {
+
+ while (ScopeStack.size() && PopScopeMap[ScopeStack.back()] == CurStmt)
ScopeStack.pop_back();
- }
}
-void Sema::RecursiveCalcJumpScopes(llvm::DenseMap<Stmt*, void*>& LabelScopeMap,
- llvm::DenseMap<void*, Stmt*>& PopScopeMap,
- llvm::DenseMap<Stmt*, void*>& GotoScopeMap,
- std::vector<void*>& ScopeStack,
- Stmt* CurStmt) {
+static void RecursiveCalcJumpScopes(llvm::DenseMap<Stmt*, void*>& LabelScopeMap,
+ llvm::DenseMap<void*, Stmt*>& PopScopeMap,
+ llvm::DenseMap<Stmt*, void*>& GotoScopeMap,
+ std::vector<void*>& ScopeStack,
+ Stmt *CurStmt, Sema &S) {
for (Stmt::child_iterator i = CurStmt->child_begin();
i != CurStmt->child_end(); ++i) {
if (!*i) continue;
if (StatementCreatesScope(*i)) {
ScopeStack.push_back(*i);
} else if (GotoStmt* GS = dyn_cast<GotoStmt>(*i)) {
- void* LScope = LabelScopeMap[GS->getLabel()];
- if (LScope) {
+ if (void *LScope = LabelScopeMap[GS->getLabel()]) {
bool foundScopeInStack = false;
for (unsigned i = ScopeStack.size(); i > 0; --i) {
if (LScope == ScopeStack[i-1]) {
@@ -2977,18 +2977,16 @@
break;
}
}
- if (!foundScopeInStack) {
- Diag(GS->getSourceRange().getBegin(), diag::err_goto_into_scope);
- }
+ if (!foundScopeInStack)
+ S.Diag(GS->getSourceRange().getBegin(), diag::err_goto_into_scope);
}
}
if (isa<DeclStmt>(*i)) continue;
RecursiveCalcJumpScopes(LabelScopeMap, PopScopeMap, GotoScopeMap,
- ScopeStack, *i);
+ ScopeStack, *i, S);
}
- while (ScopeStack.size() && PopScopeMap[ScopeStack.back()] == CurStmt) {
+ while (ScopeStack.size() && PopScopeMap[ScopeStack.back()] == CurStmt)
ScopeStack.pop_back();
- }
}
Sema::DeclPtrTy Sema::ActOnFinishFunctionBody(DeclPtrTy D, StmtArg BodyArg) {
@@ -3046,8 +3044,10 @@
llvm::DenseMap<void*, Stmt*> PopScopeMap;
llvm::DenseMap<Stmt*, void*> GotoScopeMap;
std::vector<void*> ScopeStack;
- RecursiveCalcLabelScopes(LabelScopeMap, PopScopeMap, ScopeStack, Body, Body);
- RecursiveCalcJumpScopes(LabelScopeMap, PopScopeMap, GotoScopeMap, ScopeStack, Body);
+ RecursiveCalcLabelScopes(LabelScopeMap, PopScopeMap, ScopeStack, Body, Body,
+ *this);
+ RecursiveCalcJumpScopes(LabelScopeMap, PopScopeMap, GotoScopeMap,
+ ScopeStack, Body, *this);
}
return D;
More information about the cfe-commits
mailing list