summaryrefslogtreecommitdiffstats
path: root/clang/lib/StaticAnalyzer
Commit message (Collapse)AuthorAgeFilesLines
* Introduce a new expression kind, SubstNonTypeTemplateParmPackExpr,Douglas Gregor2011-01-151-0/+1
| | | | | | | | | that captures the substitution of a non-type template argument pack for a non-type template parameter pack within a pack expansion that cannot be fully expanded. This follows the approach taken by SubstTemplateTypeParmPackType. llvm-svn: 123506
* Cleanup confused code that redundantly called "getDeclContext()" twice.Ted Kremenek2011-01-141-3/+1
| | | | | | Found by clang static analyzer. llvm-svn: 123485
* Rename 'RemoveDeadBindings()' to 'removeDeadBindings()'Ted Kremenek2011-01-148-28/+28
| | | | llvm-svn: 123460
* Rename 'EnterStackFrame()' to 'enterStackFrame()'.Ted Kremenek2011-01-144-6/+6
| | | | llvm-svn: 123459
* Teach RegionStore::EnterStackFrame() to handleTed Kremenek2011-01-141-4/+7
| | | | | | | | | | | the case where the called function has fewer formal arguments than actual arguments. This fixes a crash in the analyzer when doing function call inlining. Patch by Zhenbo Xu! llvm-svn: 123458
* Rename 'CheckDeadStores.cpp' to 'DeadStoresChecker.cpp'.Ted Kremenek2011-01-132-1/+1
| | | | llvm-svn: 123395
* Remove warning in dead stores checker forTed Kremenek2011-01-131-6/+5
| | | | | | | | dead stores within nested assignments. I have never seen an actual bug found by this specific warning, and it can lead to many false positives. llvm-svn: 123394
* CXXBaseObjectRegion is like FieldRegion. Need to blast through it whenZhongxing Xu2011-01-131-0/+1
| | | | | | getting the base region. This makes the RemoveDeadBindings() correct. llvm-svn: 123375
* Support inlining base initializers. We still haven't got it completely right,Zhongxing Xu2011-01-132-12/+39
| | | | | | | since the bindings are purged after they are set up. Need to investigate RemoveDeadBindings algorithm. llvm-svn: 123374
* Fix a corner case in RegionStore where we assignTed Kremenek2011-01-131-2/+27
| | | | | | | | | | | | | a struct value to a symbolic index into array. RegionStore can't actually reason about this, so we were getting bogus warnings about loading uninitialized values from the array. The solution is invalidate the entire array when we cannot represent the binding explicitly. Fixes <rdar://problem/8848957> llvm-svn: 123368
* Rename 'HasGeneratedNode' to 'hasGeneratedNode'Ted Kremenek2011-01-133-24/+21
| | | | | | | | | and 'getBasePredecessor()' to 'getPredecessor()'. Also remove a unneeded save-and-restore of node builder's tag field. llvm-svn: 123363
* Remove unnecessary save-and-restore of theTed Kremenek2011-01-133-3/+1
| | | | | | node builder's 'HasGeneratedNode' field. llvm-svn: 123362
* Remove CheckerContext's dependence on settingTed Kremenek2011-01-131-2/+1
| | | | | | | the node builder's "tag" ivar (which we would like to remove). llvm-svn: 123361
* Add some documentation for C++ static analyzer.Zhongxing Xu2011-01-121-0/+22
| | | | llvm-svn: 123313
* [analyzer] Introduce ObjCSelfInitChecker, which checks initialization ↵Argyrios Kyrtzidis2011-01-114-0/+309
| | | | | | | | | methods to verify that they assign 'self' to the result of an initialization call (e.g. [super init], or [self initWith..]) before using any instance variable or returning 'self'. llvm-svn: 123264
* [analyzer] Support post-visiting ObjCIvarRefExprs for checkers.Argyrios Kyrtzidis2011-01-111-1/+7
| | | | llvm-svn: 123263
* [analyzer] Add 'isLoad' parameter in Checker::visitLocation() to ↵Argyrios Kyrtzidis2011-01-114-8/+11
| | | | | | conveniently distinguish between loads/stores. llvm-svn: 123261
* Remove ProgramPoint parameter from GenericNodeBuilder::generateNode().Ted Kremenek2011-01-111-3/+1
| | | | llvm-svn: 123240
* Rename GenericNodeBuilder to GenericNodeBuilderRefCount to avoid namespace ↵Francois Pichet2011-01-111-11/+12
| | | | | | clash using MSVC. llvm-svn: 123228
* Rework ExprEngine::processCFGBlockEntrance()Ted Kremenek2011-01-112-11/+59
| | | | | | | | to use a node builder. This paves the way for Checkers to interpose (via a "visit" method) at the entrance to blocks. llvm-svn: 123217
* Remove several silly methods from ento::CoreEngineTed Kremenek2011-01-111-14/+12
| | | | | | that just forwarded to ento::SubEngine. llvm-svn: 123216
* Rename misc. methods in ento::Worklist to startTed Kremenek2011-01-112-31/+31
| | | | | | with lowercase letter. llvm-svn: 123212
* Rename misc. methods in GRSubEngine to startTed Kremenek2011-01-119-50/+50
| | | | | | with a lower-case letter. No functionality change. llvm-svn: 123211
* Replace all uses of PathV1::isDirectory with PathV2::fs::is_directory.Michael J. Spencer2011-01-111-1/+4
| | | | llvm-svn: 123208
* Fix CMakeLists.txt.Zhongxing Xu2011-01-102-2/+2
| | | | llvm-svn: 123167
* Revert r123160. There are linking dependency problems.Zhongxing Xu2011-01-102-3/+3
| | | | llvm-svn: 123166
* Unbreak the CMake build.Douglas Gregor2011-01-102-2/+2
| | | | llvm-svn: 123162
* ExprEngine.cpp and AnalysisConsumer.cpp should not be in the Checkers directory.Zhongxing Xu2011-01-102-3/+3
| | | | llvm-svn: 123160
* In C++, assignment and compound assignment operators return an lvalue.Zhongxing Xu2011-01-101-2/+8
| | | | llvm-svn: 123158
* The isPrefix() checking is redundant. Lvalue incremental/decremental expressionsZhongxing Xu2011-01-101-1/+1
| | | | | | are all prefixes. llvm-svn: 123156
* Renamed CXXBaseOrMemberInitializer to CXXCtorInitializer. This is both shorter,Alexis Hunt2011-01-081-1/+1
| | | | | | | more accurate, and makes it make sense for it to hold a delegating constructor call. llvm-svn: 123084
* There is nothing interesting to analyze with a sizeof...(pack) expressionDouglas Gregor2011-01-041-0/+1
| | | | llvm-svn: 122818
* Implement support for pack expansions whose pattern is a non-typeDouglas Gregor2011-01-031-0/+1
| | | | | | | | | | | | | | | | | template argument (described by an expression, of course). For example: template<int...> struct int_tuple { }; template<int ...Values> struct square { typedef int_tuple<(Values*Values)...> type; }; It also lays the foundation for pack expansions in an initializer-list. llvm-svn: 122751
* Set LLVM_NO_RTTI and LLVM_USED_LIBS for clangStaticAnalyzerCheckersOscar Fuentes2011-01-031-0/+4
| | | | | | Patch by arrowdodger! llvm-svn: 122747
* Add basic support for pointer arithmetic inTed Kremenek2010-12-242-5/+38
| | | | | | | | SimpleSValBuilder. This clears up some false positives emitted by ArrayBoundCheckerV2 due to the lack of support for pointer arithmetic. llvm-svn: 122546
* Remove the EntoSA directories.Argyrios Kyrtzidis2010-12-2489-31485/+0
| | | | llvm-svn: 122543
* Chris Lattner has strong opinions about directoryTed Kremenek2010-12-23178-0/+62970
layout. :) Rename the 'EntoSA' directories to 'StaticAnalyzer'. Internally we will still use the 'ento' namespace for the analyzer engine (unless there are further sabre rattlings...). llvm-svn: 122514
OpenPOWER on IntegriCloud