llvm-project/clang/test/Analysis/inlining
Anna Zaks b8de0c4278 Do not inline methods of C++ containers (coming from headers).
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
2014-06-27 01:03:05 +00:00
..
DynDispatchBifurcate.m improve of note message and minor refactoring of my last 2013-05-15 15:27:35 +00:00
InlineObjCClassMethod.m [analyzer] Make inlining decisions based on the callee being variadic. 2013-09-28 02:04:19 +00:00
InlineObjCInstanceMethod.h [analyzer] ObjC Inlining: add tests for ivars and properties. 2012-08-10 18:56:01 +00:00
InlineObjCInstanceMethod.m [analyzer] Follow up to r167762 - precisely determine the adjustment 2012-11-12 23:40:29 +00:00
ObjCDynTypePopagation.m [analyzer] Restrict ObjC type inference to methods that have related result type. 2013-02-25 22:10:34 +00:00
ObjCImproperDynamictallyDetectableCast.m [analyzer] Replace "-analyzer-ipa" with "-analyzer-config ipa". 2013-01-24 23:15:30 +00:00
RetainCountExamples.m [analyzer] Replace "-analyzer-ipa" with "-analyzer-config ipa". 2013-01-24 23:15:30 +00:00
assume-super-init-does-not-return-nil.m [analyzer] Replace "-analyzer-ipa" with "-analyzer-config ipa". 2013-01-24 23:15:30 +00:00
containers.cpp Do not inline methods of C++ containers (coming from headers). 2014-06-27 01:03:05 +00:00
dyn-dispatch-bifurcate.cpp Update tests in preparation for using the MS ABI for Win32 targets 2014-01-13 19:48:13 +00:00
eager-reclamation-path-notes.c [analyzer] Enable the new edge algorithm by default. 2013-06-03 23:00:19 +00:00
eager-reclamation-path-notes.cpp [analyzer] Enable the new edge algorithm by default. 2013-06-03 23:00:19 +00:00
false-positive-suppression.c [analyzer] Make sure that inlined defensive checks work on div by zero. 2013-07-04 02:38:06 +00:00
false-positive-suppression.cpp [analyzer] Fix test to actually test what was intended. 2013-03-22 21:15:26 +00:00
false-positive-suppression.m [analyzer] Fix trackNullOrUndef when tracking args that have nil receivers. 2013-05-03 05:47:24 +00:00
inline-defensive-checks.c [analyzer] Make sure that inlined defensive checks work on div by zero. 2013-07-04 02:38:06 +00:00
inline-defensive-checks.cpp [analyzer] Fix null tracking for the given test case, by using the proper state and removing redundant code. 2013-04-05 23:50:11 +00:00
inline-defensive-checks.m [analyzer] Address Jordan’s review of r178309 - do not register an extra visitor for nil receiver 2013-03-29 22:32:38 +00:00
path-notes.c [analyzer] Enable the new edge algorithm by default. 2013-06-03 23:00:19 +00:00
path-notes.cpp Fix/Improve SourceRange of explicitly defaulted members 2014-06-20 08:44:22 +00:00
path-notes.m [analyzer] Don't process autorelease counts in synthesized function bodies. 2013-08-01 22:16:36 +00:00
retain-count-self-init.m [analyzer] Replace "-analyzer-ipa" with "-analyzer-config ipa". 2013-01-24 23:15:30 +00:00
stl.cpp [analyzer] Just silence all warnings coming out of std::basic_string. 2014-02-07 17:35:04 +00:00
test-always-inline-size-option.c [analyzer] Do not count calls to small functions when computing stack 2012-09-10 23:35:11 +00:00
test_objc_inlining_option.m [analyzer] Replace "-analyzer-ipa" with "-analyzer-config ipa". 2013-01-24 23:15:30 +00:00