aboutsummaryrefslogtreecommitdiff
path: root/lib/StaticAnalyzer/Checkers
AgeCommit message (Collapse)Author
2011-02-01Fix the message. Thanks to Thomas Clement for noticing.Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124680 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-01[analyzer] Slightly improve the diagnostic message of ObjCSelfInitChecker.Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124674 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-27[analyzer] Fix crash when handling dot syntax on 'super'.Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124376 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-26[analyzer] Enable the self-init checker under command-line option ↵Argyrios Kyrtzidis
'-analyzer-check-objc-self-init' which by default is enabled by the driver for '--analyze'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124266 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-26[analyzer] Improve the diagnostic for the self-init checker. Suggestion by Ted!Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124263 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-25[analyzer] Do the self-init check only on NSObject subclasses. Patch by ↵Argyrios Kyrtzidis
Jean-Daniel Dupas! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124249 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-25Recycle memory for GRStates that are never referencedTed Kremenek
by ExplodedNodes. This leads to about a 4-8% reduction in memory footprint when analyzing functions in sqlite3. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124214 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-25Tweak wording of static analyzer diagnosticTed Kremenek
for a block capturing the value of an uninitialized variable. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124212 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-25[analyzer] Handle the dot syntax for properties in the ExprEngine.Argyrios Kyrtzidis
We translate property accesses to obj-c messages by simulating "loads" or "stores" to properties using a pseudo-location SVal kind (ObjCPropRef). Checkers can now reason about obj-c messages for both explicit message expressions and implicit messages due to property accesses. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124161 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-25[analyzer] Introduce ExprEngine::VisitObjCMessage for handling general ↵Argyrios Kyrtzidis
ObjCMessages (both message expressions and property access) and use it in ExprEngine::VisitObjCMessageExpr. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124160 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-25[analyzer] Introduce ObjCMessage which represents both explicit ObjC message ↵Argyrios Kyrtzidis
expressions and implicit messages that are sent for handling properties in dot syntax. Replace all direct uses of ObjCMessageExpr in the checkers and checker interface with ObjCMessage. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124159 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-25[analyzer] Simplify GetReceiverType function in ↵Argyrios Kyrtzidis
BasicObjCFoundationChecks.cpp; no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124157 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-20Enhance AnalysisConsumer to also visit functionsTed Kremenek
and methods defined within 'namespace X { ... }'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123921 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-19Change QualType::getTypePtr() to return a const pointer, then change aJohn McCall
thousand other things which were (generally inadvertantly) relying on that. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123814 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-18Fix warnings found by gcc-4.6, from -Wunused-but-set-variable andJeffrey Yasskin
-Wint-to-pointer-cast. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123719 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-17NetBSD, OpenBSD, and Dragonfly BSD also have arc4random. Patch fromDouglas Gregor
Joerg Sonnenberger! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123669 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-15Introduce a new expression kind, SubstNonTypeTemplateParmPackExpr,Douglas Gregor
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123506 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-14Cleanup confused code that redundantly called "getDeclContext()" twice.Ted Kremenek
Found by clang static analyzer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123485 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-14Rename 'RemoveDeadBindings()' to 'removeDeadBindings()'Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123460 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-14Rename 'EnterStackFrame()' to 'enterStackFrame()'.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123459 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-13Rename 'CheckDeadStores.cpp' to 'DeadStoresChecker.cpp'.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123395 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-13Remove warning in dead stores checker forTed Kremenek
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123394 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-13Support inlining base initializers. We still haven't got it completely right,Zhongxing Xu
since the bindings are purged after they are set up. Need to investigate RemoveDeadBindings algorithm. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123374 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-13Rename 'HasGeneratedNode' to 'hasGeneratedNode'Ted Kremenek
and 'getBasePredecessor()' to 'getPredecessor()'. Also remove a unneeded save-and-restore of node builder's tag field. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123363 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-13Remove unnecessary save-and-restore of theTed Kremenek
node builder's 'HasGeneratedNode' field. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123362 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-11[analyzer] Introduce ObjCSelfInitChecker, which checks initialization ↵Argyrios Kyrtzidis
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'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123264 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-11[analyzer] Support post-visiting ObjCIvarRefExprs for checkers.Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123263 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-11[analyzer] Add 'isLoad' parameter in Checker::visitLocation() to ↵Argyrios Kyrtzidis
conveniently distinguish between loads/stores. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123261 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-11Remove ProgramPoint parameter from GenericNodeBuilder::generateNode().Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123240 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-11Rework ExprEngine::processCFGBlockEntrance()Ted Kremenek
to use a node builder. This paves the way for Checkers to interpose (via a "visit" method) at the entrance to blocks. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123217 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-11Rename misc. methods in ento::Worklist to startTed Kremenek
with lowercase letter. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123212 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-11Rename misc. methods in GRSubEngine to startTed Kremenek
with a lower-case letter. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123211 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-10Fix CMakeLists.txt.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123167 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-10Revert r123160. There are linking dependency problems.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123166 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-10Unbreak the CMake build.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123162 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-10ExprEngine.cpp and AnalysisConsumer.cpp should not be in the Checkers directory.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123160 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-10In C++, assignment and compound assignment operators return an lvalue.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123158 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-10The isPrefix() checking is redundant. Lvalue incremental/decremental expressionsZhongxing Xu
are all prefixes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123156 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-08Renamed CXXBaseOrMemberInitializer to CXXCtorInitializer. This is both shorter,Sean Hunt
more accurate, and makes it make sense for it to hold a delegating constructor call. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123084 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-04There is nothing interesting to analyze with a sizeof...(pack) expressionDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122818 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-03Implement support for pack expansions whose pattern is a non-typeDouglas Gregor
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122751 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-03Set LLVM_NO_RTTI and LLVM_USED_LIBS for clangStaticAnalyzerCheckersOscar Fuentes
Patch by arrowdodger! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122747 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-24Add basic support for pointer arithmetic inTed Kremenek
SimpleSValBuilder. This clears up some false positives emitted by ArrayBoundCheckerV2 due to the lack of support for pointer arithmetic. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122546 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-23Chris Lattner has strong opinions about directoryTed Kremenek
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...). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122514 91177308-0d34-0410-b5e6-96231b3b80d8