summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/AnalysisBasedWarnings.cpp
diff options
context:
space:
mode:
authorAkira Hatanaka <ahatanaka@apple.com>2019-04-23 23:52:02 +0000
committerAkira Hatanaka <ahatanaka@apple.com>2019-04-23 23:52:02 +0000
commit53796d9439018b97a0e6f35af0ba83843a7270e7 (patch)
treee61a67820c2f31e554c3b4708f3058ad1823a30c /clang/lib/Sema/AnalysisBasedWarnings.cpp
parenteeab4518e1d718c2aa09fbe116cd060dac306d56 (diff)
downloadbcm5719-llvm-53796d9439018b97a0e6f35af0ba83843a7270e7.tar.gz
bcm5719-llvm-53796d9439018b97a0e6f35af0ba83843a7270e7.zip
Improve -Wuninitialized warning under ARC for block variables that are
recursively captured. Under ARC, a block variable is zero-initialized when it is recursively captured by the block literal initializer. rdar://problem/11022762 llvm-svn: 359049
Diffstat (limited to 'clang/lib/Sema/AnalysisBasedWarnings.cpp')
-rw-r--r--clang/lib/Sema/AnalysisBasedWarnings.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/clang/lib/Sema/AnalysisBasedWarnings.cpp b/clang/lib/Sema/AnalysisBasedWarnings.cpp
index d4aa701867f..7afe44658ed 100644
--- a/clang/lib/Sema/AnalysisBasedWarnings.cpp
+++ b/clang/lib/Sema/AnalysisBasedWarnings.cpp
@@ -998,7 +998,8 @@ static bool DiagnoseUninitializedUse(Sema &S, const VarDecl *VD,
if (VD->getType()->isBlockPointerType() && !VD->hasAttr<BlocksAttr>())
S.Diag(BE->getBeginLoc(),
diag::warn_uninit_byref_blockvar_captured_by_block)
- << VD->getDeclName();
+ << VD->getDeclName()
+ << VD->getType().getQualifiers().hasObjCLifetime();
else
DiagUninitUse(S, VD, Use, true);
}
OpenPOWER on IntegriCloud