llvm-project/clang/lib/StaticAnalyzer/Core
Jordan Rose 5d22fcb257 [analyzer] Track malloc'd memory into struct fields.
Due to improper modelling of copy constructors (specifically, their
const reference arguments), we were producing spurious leak warnings
for allocated memory stored in structs. In order to silence this, we
decided to consider storing into a struct to be the same as escaping.
However, the previous commit has fixed this issue and we can now properly
distinguish leaked memory that happens to be in a struct from a buffer
that escapes within a struct wrapper.

Originally applied in r161511, reverted in r174468.
<rdar://problem/12945937>

llvm-svn: 177571
2013-03-20 20:35:57 +00:00
..
APSIntType.cpp [analyzer] Rework both constraint managers to handle mixed-type comparisons. 2012-05-08 03:27:16 +00:00
AnalysisManager.cpp Have AnalyzerOptions::getBooleanOption() stick the matching config 2012-10-01 18:28:19 +00:00
AnalyzerOptions.cpp [analyzer] IDC: Add config option; perform the idc check on first “null node” rather than last “non-null”. 2013-03-06 20:25:59 +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 [analyzer] Re-apply "Do part of the work to find shortest bug paths up front". 2013-03-20 00:35:37 +00:00
BugReporterVisitors.cpp [analyzer] Replace uses of assume() with isNull() in BR visitors. 2013-03-18 23:34:32 +00:00
CMakeLists.txt Remove ProgramState::getSymVal(). It was being misused by Checkers, 2012-09-07 22:31:01 +00:00
CallEvent.cpp [analyzer] Invalidate regions indirectly accessible through const pointers. 2013-03-20 20:35:53 +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 pointer escape type param to checkPointerEscape callback 2013-02-07 23:05:43 +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 Remove the CFGElement "Invalid" state. 2013-02-23 00:29:34 +00:00
Environment.cpp Include llvm::Optional in clang/Basic/LLVM.h 2013-02-20 22:23:23 +00:00
ExplodedGraph.cpp [analyzer] Break cycles (optionally) when trimming an ExplodedGraph. 2013-03-20 00:35:31 +00:00
ExprEngine.cpp [analyzer] Track malloc'd memory into struct fields. 2013-03-20 20:35:57 +00:00
ExprEngineC.cpp Silence a number of static analyzer warnings with assertions and such. 2013-03-05 01:27:54 +00:00
ExprEngineCXX.cpp [analyzer] Model trivial copy/move assignment operators with a bind as well. 2013-03-16 02:14:06 +00:00
ExprEngineCallAndReturn.cpp [analyzer] Model trivial copy/move assignment operators with a bind as well. 2013-03-16 02:14:06 +00:00
ExprEngineObjC.cpp Include llvm::Optional in clang/Basic/LLVM.h 2013-02-20 22:23:23 +00:00
FunctionSummary.cpp [analyzer] Record the basic blocks covered by the analyzes run. 2012-04-03 02:05:47 +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] Invalidate regions indirectly accessible through const pointers. 2013-03-20 20:35:53 +00:00
RangeConstraintManager.cpp Sort all of Clang's files under 'lib', and fix up the broken headers 2012-12-04 09:13:33 +00:00
RegionStore.cpp [analyzer] Invalidate regions indirectly accessible through const pointers. 2013-03-20 20:35:53 +00:00
SValBuilder.cpp Include llvm::Optional in clang/Basic/LLVM.h 2013-02-20 22:23:23 +00:00
SVals.cpp Include llvm::Optional in clang/Basic/LLVM.h 2013-02-20 22:23:23 +00:00
SimpleConstraintManager.cpp Include llvm::Optional in clang/Basic/LLVM.h 2013-02-20 22:23:23 +00:00
SimpleConstraintManager.h [analyzer] Make ProgramStateManager's SubEngine parameter optional. 2012-10-01 16:53:40 +00:00
SimpleSValBuilder.cpp Include llvm::Optional in clang/Basic/LLVM.h 2013-02-20 22:23:23 +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