llvm-project/clang/lib/StaticAnalyzer/Core
Jordan Rose 2de3daa0a2 [analyzer] Enable destructor inlining by default (c++-inlining=destructors).
This turns on not only destructor inlining, but inlining of constructors
for types with non-trivial destructors. Per r178516, we will still not
inline the constructor or destructor of anything that looks like a
container unless the analyzer-config option 'c++-container-inlining' is
set to 'true'.

In addition to the more precise path-sensitive model, this allows us to
catch simple smart pointer issues:

  #include <memory>

  void test() {
    std::auto_ptr<int> releaser(new int[4]);
  } // memory allocated with 'new[]' should not be deleted with 'delete'

<rdar://problem/12295363>

llvm-svn: 178805
2013-04-04 23:10:29 +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] Break cycles (optionally) when trimming an ExplodedGraph." 2013-03-22 21:15:33 +00:00
BugReporterVisitors.cpp [analyzer] Allow tracknullOrUndef look through the ternary operator even when condition is unknown 2013-04-03 21:34:12 +00:00
CMakeLists.txt Remove ProgramState::getSymVal(). It was being misused by Checkers, 2012-09-07 22:31:01 +00:00
CallEvent.cpp [analyzer] Teach invalidateRegions that regions within LazyCompoundVal need to be invalidated 2013-04-02 01:28:24 +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 [analyzer] Correctly handle destructors for lifetime-extended temporaries. 2013-04-03 21:16:58 +00:00
ExprEngineC.cpp Add static analyzer support for conditionally executing static initializers. 2013-03-29 00:09:28 +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] Better model for copying of array fields in implicit copy ctors. 2013-04-03 01:39:08 +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 Pass AnalyzerOptions to PathDiagnosticConsumer to make analyzer options accessible there. 2012-12-19 01:35:35 +00:00
Makefile
MemRegion.cpp [analyzer] Special-case bitfields when finding sub-region bindings. 2013-03-01 23:03:17 +00:00
PathDiagnostic.cpp Remove the CFGElement "Invalid" state. 2013-02-23 00:29:34 +00:00
PlistDiagnostics.cpp Remove useless 'llvm::' qualifier from names like StringRef and others that are 2013-01-12 19:30:44 +00:00
ProgramState.cpp [analyzer] Properly handle the ternary operator in trackNullOrUndefValue 2013-04-03 19:28:12 +00:00
RangeConstraintManager.cpp [analyzer] Teach constraint managers about unsigned comparisons. 2013-03-23 01:21:33 +00:00
RegionStore.cpp [analyzer] Fix typo. 2013-04-03 19:28:05 +00:00
SValBuilder.cpp Include llvm::Optional in clang/Basic/LLVM.h 2013-02-20 22:23:23 +00:00
SVals.cpp [analyzer] Loc-Loc operations (subtraction or comparison) produce a NonLoc. 2013-03-23 01:21:29 +00:00
SimpleConstraintManager.cpp [analyzer] Teach ConstraintManager to ignore NonLoc <> NonLoc comparisons. 2013-03-24 20:25:22 +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 [analyzer] Loc-Loc operations (subtraction or comparison) produce a NonLoc. 2013-03-23 01:21:29 +00:00
Store.cpp [analyzer] Record whether a base object region represents a virtual base. 2013-02-21 03:12:32 +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] Use isLiveRegion to determine when SymbolRegionValue is dead. 2013-03-15 23:34:29 +00:00
TextPathDiagnostics.cpp Pass AnalyzerOptions to PathDiagnosticConsumer to make analyzer options accessible there. 2012-12-19 01:35:35 +00:00