llvm-project/clang/lib/StaticAnalyzer/Core
Jordan Rose 5bc0dd79e1 [analyzer] Don't assert when mixing reinterpret_cast and derived-to-base casts.
This just adds a very simple check that if a DerivedToBase CastExpr is
operating on a value with known C++ object type, and that type is not the
base type specified in the AST, then the cast is invalid and we should
return UnknownVal.

In the future, perhaps we can have a checker that specifies that this is
illegal, but we still shouldn't assert even if the user turns that checker
off.

PR14872

llvm-svn: 175239
2013-02-15 01:23:24 +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] Make shallow mode more shallow. 2013-01-30 19:12:39 +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 clang/lib/StaticAnalyzer/Core/BugReporter.cpp: Appease old msvc in std::pair(0, 0). 2013-02-09 01:22:23 +00:00
BugReporterVisitors.cpp Change subexpressions to be visited in the CFG from left-to-right. 2013-02-05 22:00:19 +00:00
CMakeLists.txt Remove ProgramState::getSymVal(). It was being misused by Checkers, 2012-09-07 22:31:01 +00:00
CallEvent.cpp [analyzer] Address Jordan's nitpicks as per code review of r170625. 2012-12-21 01:50:14 +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 Sort all of Clang's files under 'lib', and fix up the broken headers 2012-12-04 09:13:33 +00:00
Environment.cpp [analyzer] Use Clang's evaluation for global constants and default arguments. 2013-02-13 03:11:06 +00:00
ExplodedGraph.cpp [analyzer] Remove isa<> followed by dyn_cast<>. 2012-12-06 18:58:29 +00:00
ExprEngine.cpp [analyzer] Use Clang's evaluation for global constants and default arguments. 2013-02-13 03:11:06 +00:00
ExprEngineC.cpp [analyzer] Remove redundant check as per Jordan's feedback. 2013-02-07 23:29:22 +00:00
ExprEngineCXX.cpp Re-apply "[analyzer] Model trivial copy/move ctors with an aggregate bind." 2013-02-15 00:32:15 +00:00
ExprEngineCallAndReturn.cpp Re-apply "[analyzer] Model trivial copy/move ctors with an aggregate bind." 2013-02-15 00:32:15 +00:00
ExprEngineObjC.cpp [analyzer] Remove unused fields from ExprEngine. 2012-12-06 18:58:26 +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] Refactor RegionStore's sub-region bindings traversal. 2013-02-15 00:32:03 +00:00
PathDiagnostic.cpp [analyzer] Don't show "Entered 'foo'" if 'foo' is implicit. 2013-01-19 19:52:57 +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] Scan the correct store when finding symbols in a LazyCompoundVal. 2013-02-15 00:32:10 +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] Cache the bindings accessible through a LazyCompoundVal. 2013-02-15 00:32:12 +00:00
SValBuilder.cpp [analyzer] Teach the analyzer to use a symbol for p when evaluating 2013-02-05 19:52:28 +00:00
SVals.cpp [analyzer] Reuse a LazyCompoundVal if its type matches the new region. 2013-02-01 19:49:57 +00:00
SimpleConstraintManager.cpp [analyzer] Make ProgramStateManager's SubEngine parameter optional. 2012-10-01 16:53:40 +00:00
SimpleConstraintManager.h [analyzer] Make ProgramStateManager's SubEngine parameter optional. 2012-10-01 16:53:40 +00:00
SimpleSValBuilder.cpp [analyzer] Fix typo. 2013-02-02 00:29:59 +00:00
Store.cpp [analyzer] Don't assert when mixing reinterpret_cast and derived-to-base casts. 2013-02-15 01:23:24 +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] Run remove dead on end of path. 2012-11-03 02:54:20 +00:00
TextPathDiagnostics.cpp Pass AnalyzerOptions to PathDiagnosticConsumer to make analyzer options accessible there. 2012-12-19 01:35:35 +00:00