aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2009-07-22Use SaveAndRestore in 'clang/Analysis/Support/SaveAndRestore.h'Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76800 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22Add AssumeDual method.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76798 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22Migrate the path-sensitive checking of 'nonnull' arguments over to the newTed Kremenek
'Checker' interface. An updated test case illustrates that after calling a function with the 'nonnull' attribute we now register the fact that the passed pointer must be non-null. This retention of information was not possible with the previously used GRSimpleAPICheck interface. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76797 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22Fix the parsing of default arguments for inline member function Eli Friedman
definitions. I'm not very familiar with this code, so please review. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76796 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22Make 'SaveAndRestore' and friends reusable classes in libAnalysis.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76795 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22Add support for registering 'Checker' objects with GRExprEngine.Ted Kremenek
Add a 'previsit' stage (that dispatches to registered Checkers) when evaluating the effects of CallExprs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76794 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22Add new 'Checker' and 'CheckerVisitor' classes, which represent a more powerfulTed Kremenek
interface to plug in domain-specific checker logic than the current GRSimpleAPICheck interface. The new 'Checker' interface can actually generate new nodes, allowing it to modify the state and refine the analysis (which GRSimpleAPIChecks could not). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76793 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22Add support for 'PreStmt' program points to GRCoreEngine and GRStmtNodeBuilder.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76792 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22Add 'PreStmt' program point. This will be used to represent checking forTed Kremenek
preconditions (in GRExprEngine) before the statement itself is evaluated. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76791 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22Implement operator= for ExplodedNodeSet.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76790 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22Fix the problems with template argument deduction and array types forDouglas Gregor
real. It turns out that we need to actually move all of the qualifiers up to the array type itself, then recanonicalize the deduced template argument type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76788 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22Make -Wreturn-type be part of -Wmost and therefore -Wall.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76784 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22Fix some memory allocation/deallocation issuesDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76783 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22Fix a nasty little use-after-free bug.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76779 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22Canonicalize the types produced by template argument deduction.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76777 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22Improved on performance of the algorithm for proper ordering ofFariborz Jahanian
ctor's initialization of bases and fields. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76776 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22Slighty more testing for template argument deduction with array argumentsDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76774 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22Improve template argument deduction for array types, so that a parameterDouglas Gregor
const T can be matched with, e.g., volatile int [5] git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76773 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22Prep for new warning.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76772 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22Use isa instead of dyn_cast for conditionals.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76771 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22Use DICompositeType->replaceAllUsesWith().Devang Patel
This requires llvm rev. 76769 or higher. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76770 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22"This patch implements the restrictions on union members detailed inDouglas Gregor
[class.union]p1", from John McCall! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76766 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22Move bug reporter "visitors" to their own file and make them part of the publicTed Kremenek
BugReporter API. No real functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76760 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22Allocate BaseOrMemberInitializers and CXXBaseSpecifier nodesFariborz Jahanian
via ASTContext. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76758 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22Implement parsing and semantic analysis for out-of-line definitions of staticDouglas Gregor
data members of class templates. We don't instantiate the definitions yet, however. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76756 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22Fix a couple recent ABI regressions noticed during code review (fallout from ↵Steve Naroff
the ObjC type system rewrite). It's unfortunate that the mangling includes the low-level structs. Nevertheless, we need this for binary compatibility with GCC. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76755 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22Switch some functions from using x86 builtins to using vector Eli Friedman
operations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76753 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22Add some documentation, to make it so the next person doens't selectMike Stump
the wrong function. :-) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76752 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22Fix <rdar://problem/6770276> Support Class<Proto> syntax.Steve Naroff
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76741 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22Test template instantiation for member functions of class templates definedDouglas Gregor
out of line. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76740 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22Make vectorized floating-point comparisons work without crashing.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76726 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22Restructure ProgramPoint to have the 'Kind' value be its own instanceTed Kremenek
variable. This gives us much more flexibility with defining more ProgramPoints, which is the direction we are heading. The removal of various bit-mangling of pointers also cleans up the logic. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76721 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22Temporarily disable most use of region casts in RegionStoreManager,Ted Kremenek
instead preferring to use the a region's actual type when creating symbols and using the QualType passed to Retrieve for implicit casting. This preprocessor logic is temporary; eventually we will either remove region casts or keep them. Temporarily toggle (via preprocessor directives) that SymbolicRegions with heap storage are not undefined, but instead should be symbolicated. If we want to model that a SymbolicRegion is uninitialized, we can explicitly model that by binding UndefinedVal to that region. It turns out that we want to treat most heap objects as being defined, not the other way around. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76720 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22Fix a crasher in StoreManager::InvalidateRegion() caused by using theTed Kremenek
'cast type' of a region to invalidate its binding. This only occurs when using RegionStoreManager, as it records the cast type. I'm currently considering removing the notion of a cast type (see comments in code). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76719 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22Preserve address space information through member accesses, e.g., Mon P Wang
__attribute__((address_space(1))) struct {int arr[ 3 ]; } *p1; ... = p1->arr[2]; // load from address space 1 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76717 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22Remove an unneeded header.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76716 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22Prep for new warning.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76709 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22Minor mod. per Doug's comment.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76708 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22Complain if we're entering the context of a dependent nested-name-specifier butDouglas Gregor
cannot match that nested-name-specifier to a class template or class template partial specialization. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76704 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-21Basic parsing and semantic analysis for out-of-line definitions of theDouglas Gregor
member functions of class templates, e.g., template<typename T> struct X { void f(T); }; template<typename T> X<T>::f(T) { /* ... */ } git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76692 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-21Revert this, we can now avoid error cascades better.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76691 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-21Revert this, was a bug in my new warning code, not the test case.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76690 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-21Revert this, we have a better way to do this.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76687 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-21Revert this, we have a better way to handle this.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76685 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-21Revert recent change, I now have a better way to solve this (thanks Chris).Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76681 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-21Fix long-lurking bug in ObjCSummaryCache revealed by Torok's recent memoryTed Kremenek
poisoning changes to DenseMap. We were using an iterator after it had been invalidated by an insertion into the DenseMap. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76677 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-21Prep for new warning.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76670 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-21Patch to accomodate Doug's comment on defaultFariborz Jahanian
destruction of base/members for each destructor AST. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76663 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-21Remove stale comment and fix RUN line.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76656 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-21Add test case for PR 4596, which is already fixed due to Steve Naroff's ↵Ted Kremenek
overhaul of the Objective-C type system, but isn't in a checker build yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76648 91177308-0d34-0410-b5e6-96231b3b80d8