instantiation), be sure to add the transformed declaration into the
current DeclContext. Also, remove the -Wuninitialized hack that works
around this bug. Fixes <rdar://problem/
9200676>.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129544
91177308-0d34-0410-b5e6-
96231b3b80d8
void BlockStmt_VisitObjCForCollectionStmt(ObjCForCollectionStmt *fs);
bool isTrackedVar(const VarDecl *vd) {
-#if 1
- // FIXME: This is a temporary workaround to deal with the fact
- // that DeclContext's do not always contain all of their variables!
- return vals.hasEntry(vd);
-#else
return ::isTrackedVar(vd, cast<DeclContext>(ac.getDecl()));
-#endif
}
FindVarResult findBlockVarDecl(Expr *ex);
SourceLocation StartLoc,
SourceLocation IdLoc,
IdentifierInfo *Id) {
- return getSema().BuildExceptionDeclaration(0, Declarator,
- StartLoc, IdLoc, Id);
+ VarDecl *Var = getSema().BuildExceptionDeclaration(0, Declarator,
+ StartLoc, IdLoc, Id);
+ if (Var)
+ getSema().CurContext->addDecl(Var);
+ return Var;
}
/// \brief Build a new C++ catch statement.