]> granicus.if.org Git - clang/commit
-Warc-repeated-use-of-weak: check ivars and variables as well.
authorJordan Rose <jordan_rose@apple.com>
Fri, 28 Sep 2012 22:21:35 +0000 (22:21 +0000)
committerJordan Rose <jordan_rose@apple.com>
Fri, 28 Sep 2012 22:21:35 +0000 (22:21 +0000)
commit7a2704800943fbb69207e125d28186278712af36
tree0caa71289707359adc8219048e0e384ec227e9a2
parent58b6bdcdeb683a3504f2248a409e1f4e85876cee
-Warc-repeated-use-of-weak: check ivars and variables as well.

Like properties, loading from a weak ivar twice in the same function can
give you inconsistent results if the object is deallocated between the
two loads. It is safer to assign to a strong local variable and use that.

Second half of <rdar://problem/12280249>.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164855 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/Basic/DiagnosticSemaKinds.td
include/clang/Sema/ScopeInfo.h
lib/Sema/AnalysisBasedWarnings.cpp
lib/Sema/Sema.cpp
lib/Sema/SemaChecking.cpp
lib/Sema/SemaExpr.cpp
lib/Sema/SemaExprMember.cpp
lib/Sema/SemaPseudoObject.cpp
test/SemaObjC/arc-repeated-weak.mm