forked from OSchip/llvm-project
b8de0c4278
This silences false positives (leaks, use of uninitialized value) in simple code that uses containers such as std::vector and std::list. The analyzer cannot reason about the internal invariances of those data structures which leads to false positives. Until we come up with a better solution to that problem, let's just not inline the methods of the containers and allow objects to escape whenever such methods are called. This just extends an already existing flag "c++-container-inlining" and applies the heuristic not only to constructors and destructors of the containers, but to all of their methods. We have a bunch of distinct user reports all related to this issue (radar://16058651, radar://16580751, radar://16384286, radar://16795491 [PR19637]). llvm-svn: 211832 |
||
---|---|---|
.. | ||
DynDispatchBifurcate.m | ||
InlineObjCClassMethod.m | ||
InlineObjCInstanceMethod.h | ||
InlineObjCInstanceMethod.m | ||
ObjCDynTypePopagation.m | ||
ObjCImproperDynamictallyDetectableCast.m | ||
RetainCountExamples.m | ||
assume-super-init-does-not-return-nil.m | ||
containers.cpp | ||
dyn-dispatch-bifurcate.cpp | ||
eager-reclamation-path-notes.c | ||
eager-reclamation-path-notes.cpp | ||
false-positive-suppression.c | ||
false-positive-suppression.cpp | ||
false-positive-suppression.m | ||
inline-defensive-checks.c | ||
inline-defensive-checks.cpp | ||
inline-defensive-checks.m | ||
path-notes.c | ||
path-notes.cpp | ||
path-notes.m | ||
retain-count-self-init.m | ||
stl.cpp | ||
test-always-inline-size-option.c | ||
test_objc_inlining_option.m |