llvm-project/clang/lib/StaticAnalyzer/Core
Jordan Rose 7023a90378 [analyzer] Don't inline the [cd]tors of C++ iterators.
This goes with r178516, which instructed the analyzer not to inline the
constructors and destructors of C++ container classes. This goes a step
further and does the same thing for iterators, so that the analyzer won't
falsely decide we're trying to construct an iterator pointing to a
nonexistent element.

The heuristic for determining whether something is an iterator is the
presence of an 'iterator_category' member. This is controlled under the
same -analyzer-config option as container constructor/destructor inlining:
'c++-container-inlining'.

<rdar://problem/13770187>

llvm-svn: 180890
2013-05-01 22:39:31 +00:00
..
APSIntType.cpp [analyzer] Teach constraint managers about unsigned comparisons. 2013-03-23 01:21:33 +00:00
AnalysisManager.cpp Add configuration plumbing to enable static initializer branching in the CFG for the analyzer. 2013-03-29 00:09:22 +00:00
AnalyzerOptions.cpp [analyzer] Enable destructor inlining by default (c++-inlining=destructors). 2013-04-04 23:10:29 +00:00
BasicValueFactory.cpp [analyzer] Disallow creation of int vals with explicit bit width / signedness. 2012-09-01 17:39:24 +00:00
BlockCounter.cpp Cleanup various declarations of 'Stmt*' to be 'Stmt *', etc. in libAnalyzer and libStaticAnalyzer[*]. It was highly inconsistent, and very ugly to look at. 2011-08-12 23:37:29 +00:00
BugReporter.cpp Revert "[analyzer] Change PathPieces to be a wrapper around an ilist of (through indirection) PathDiagnosticPieces." 2013-04-29 23:12:59 +00:00
BugReporterVisitors.cpp [analyzer] Ensure BugReporterTracking works on regions with pointer arithmetic 2013-04-20 01:15:42 +00:00
CMakeLists.txt Remove ProgramState::getSymVal(). It was being misused by Checkers, 2012-09-07 22:31:01 +00:00
CallEvent.cpp [analyzer] Don't warn for returning void expressions in void blocks. 2013-04-17 18:03:48 +00:00
Checker.cpp Reapply r149311 which I reverted by mistake. 2012-01-31 02:23:28 +00:00
CheckerContext.cpp [analyzer] Add some convenience accessors to CallEvent, and use them. 2012-11-02 23:49:29 +00:00
CheckerHelpers.cpp Split 'include/clang/StaticAnalyzer' into 'include/clang/StaticAnalyzer/Core' and 'include/clang/StaticAnalyzer/Checkers'. 2011-02-10 01:03:03 +00:00
CheckerManager.cpp [analyzer] Add support for escape of const pointers and use it to allow “newed” pointers to escape 2013-03-28 23:15:29 +00:00
CheckerRegistry.cpp Remove useless 'llvm::' qualifier from names like StringRef and others that are 2013-01-12 19:30:44 +00:00
ConstraintManager.cpp [analyzer] Let ConstraintManager subclasses provide a more efficient checkNull. 2012-10-31 16:44:55 +00:00
CoreEngine.cpp Add static analyzer support for conditionally executing static initializers. 2013-03-29 00:09:28 +00:00
Environment.cpp Include llvm::Optional in clang/Basic/LLVM.h 2013-02-20 22:23:23 +00:00
ExplodedGraph.cpp [analyzer] Cleanup: only get the PostStmt when we need the underlying Stmt + comment 2013-03-27 17:36:01 +00:00
ExprEngine.cpp C++1y: Allow aggregates to have default initializers. 2013-04-20 22:23:05 +00:00
ExprEngineC.cpp [analyzer] Do not crash when processing binary "?:" in C++ 2013-04-15 22:38:07 +00:00
ExprEngineCXX.cpp [analyzer] Better model for copying of array fields in implicit copy ctors. 2013-04-03 01:39:08 +00:00
ExprEngineCallAndReturn.cpp [analyzer] Don't inline the [cd]tors of C++ iterators. 2013-05-01 22:39:31 +00:00
ExprEngineObjC.cpp Include llvm::Optional in clang/Basic/LLVM.h 2013-02-20 22:23:23 +00:00
FunctionSummary.cpp [analyzer] Use inline storage in the FunctionSummary DenseMap. 2013-04-02 00:26:26 +00:00
HTMLDiagnostics.cpp Revert "[analyzer] Change PathPieces to be a wrapper around an ilist of (through indirection) PathDiagnosticPieces." 2013-04-29 23:12:59 +00:00
Makefile
MemRegion.cpp [analyzer] Ensure BugReporterTracking works on regions with pointer arithmetic 2013-04-20 01:15:42 +00:00
PathDiagnostic.cpp Revert "[analyzer] Change PathPieces to be a wrapper around an ilist of (through indirection) PathDiagnosticPieces." 2013-04-29 23:12:59 +00:00
PlistDiagnostics.cpp Revert "[analyzer] Change PathPieces to be a wrapper around an ilist of (through indirection) PathDiagnosticPieces." 2013-04-29 23:12:59 +00:00
ProgramState.cpp [analyzer] Ensure BugReporterTracking works on regions with pointer arithmetic 2013-04-20 01:15:42 +00:00
RangeConstraintManager.cpp [analyzer] Teach constraint managers about unsigned comparisons. 2013-03-23 01:21:33 +00:00
RegionStore.cpp [analyzer] Refactoring + explanatory comment. 2013-04-24 10:24:38 +00:00
SValBuilder.cpp Re-apply "[analyzer] Model casts to bool differently from other numbers." 2013-05-01 18:19:59 +00:00
SVals.cpp [analyzer] Ensure BugReporterTracking works on regions with pointer arithmetic 2013-04-20 01:15:42 +00:00
SimpleConstraintManager.cpp [analyzer] Ensure BugReporterTracking works on regions with pointer arithmetic 2013-04-20 01:15:42 +00:00
SimpleConstraintManager.h [analyzer] Translate "a != b" to "(b - a) != 0" in the constraint manager. 2013-03-23 01:21:16 +00:00
SimpleSValBuilder.cpp Re-apply "[analyzer] Model casts to bool differently from other numbers." 2013-05-01 18:19:59 +00:00
Store.cpp [analyzer] Treat reinterpret_cast like a base cast in certain cases. 2013-04-22 21:36:49 +00:00
SubEngine.cpp Unweaken vtables as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch 2011-12-20 02:48:34 +00:00
SymbolManager.cpp [analyzer] Replace isIntegerType() with isIntegerOrEnumerationType(). 2013-04-09 02:30:33 +00:00
TextPathDiagnostics.cpp Revert "[analyzer] Change PathPieces to be a wrapper around an ilist of (through indirection) PathDiagnosticPieces." 2013-04-29 23:12:59 +00:00