summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaDecl.cpp
diff options
context:
space:
mode:
authorEli Friedman <eli.friedman@gmail.com>2009-02-28 06:22:14 +0000
committerEli Friedman <eli.friedman@gmail.com>2009-02-28 06:22:14 +0000
commitcba899ff7b855d9123bc2db9e2bf9033e38374f8 (patch)
treec90bf442f26ddd8c1c78116570057189741b64a8 /clang/lib/Sema/SemaDecl.cpp
parent398dee1c4acc44bd68328344bb4b2f6fc55dab53 (diff)
downloadbcm5719-llvm-cba899ff7b855d9123bc2db9e2bf9033e38374f8.tar.gz
bcm5719-llvm-cba899ff7b855d9123bc2db9e2bf9033e38374f8.zip
Check a few more kinds of declarations that make a scope.
llvm-svn: 65680
Diffstat (limited to 'clang/lib/Sema/SemaDecl.cpp')
-rw-r--r--clang/lib/Sema/SemaDecl.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp
index 8a4ffaf65de..e99be90963e 100644
--- a/clang/lib/Sema/SemaDecl.cpp
+++ b/clang/lib/Sema/SemaDecl.cpp
@@ -2503,6 +2503,9 @@ static bool StatementCreatesScope(Stmt* S) {
i != DS->decl_end(); ++i) {
if (VarDecl* D = dyn_cast<VarDecl>(*i)) {
result |= D->getType()->isVariablyModifiedType();
+ result |= !!D->getAttr<CleanupAttr>();
+ } else if (TypedefDecl* D = dyn_cast<TypedefDecl>(*i)) {
+ result |= D->getUnderlyingType()->isVariablyModifiedType();
}
}
}
OpenPOWER on IntegriCloud