summaryrefslogtreecommitdiffstats
path: root/clang
Commit message (Collapse)AuthorAgeFilesLines
...
* Set field info for unions.Anders Carlsson2009-07-231-1/+11
| | | | llvm-svn: 76856
* Use arrays as union padding. Also, since the resulting struct will always ↵Anders Carlsson2009-07-232-9/+12
| | | | | | contain a single element and either a single i8 element or an array of i8s, there's no reason to use a packed struct. llvm-svn: 76854
* Revert r76831, there are many Analyzer test failures on multiple platforms.Daniel Dunbar2009-07-232-19/+3
| | | | | | | | --- Reverse-merging r76831 into '.': U include/clang/Analysis/PathSensitive/GRExprEngine.h U lib/Analysis/GRExprEngine.cpp llvm-svn: 76851
* Handle zero width bit fields in unions correctly (by ignoring them).Anders Carlsson2009-07-231-0/+9
| | | | llvm-svn: 76847
* Implement union layout support.Anders Carlsson2009-07-232-5/+48
| | | | llvm-svn: 76846
* Check in CGRecordLayoutBuilder which is a reimplementation of the record ↵Anders Carlsson2009-07-235-12/+429
| | | | | | layout code. (Yay, no more packed structs unless absolutely necessary). We currently don't use the layouts being built but that will change when the new code is mature enough :) llvm-svn: 76845
* These IRgen improvements have been done.Daniel Dunbar2009-07-231-18/+0
| | | | | | | Technically we could still do a bit more to avoid deferred generation of statics which we know are used, but I seriously doubt this is important. llvm-svn: 76844
* Add initial implementation of checking for uses of floating point as a loop ↵Ted Kremenek2009-07-235-0/+135
| | | | | | counter. llvm-svn: 76833
* Add instance predicate method to match static method.Ted Kremenek2009-07-231-0/+1
| | | | llvm-svn: 76832
* Add 'previsit' Checker pass for ObjCMessageExprs.Ted Kremenek2009-07-232-3/+19
| | | | llvm-svn: 76831
* Remove a bunch of FIXME's related to ObjC type checking.Steve Naroff2009-07-2310-252/+219
| | | | | | | | - Move Sema::ObjCQualifiedIdTypesAreCompatible(), Sema::QualifiedIdConformsQualifiedId(), and a couple helper functions to ASTContext. - Change ASTContext::canAssignObjCInterfaces() to use ASTContext:: ObjCQualifiedIdTypesAreCompatible(). - Tweak several test cases to accommodate the new/improved type checking. llvm-svn: 76830
* Add constructor used to initialize base/member inFariborz Jahanian2009-07-234-8/+53
| | | | | | | CXXBaseOrMemberInitializer AST node. Needed by its clients to do the initialization. llvm-svn: 76826
* Fix case, apparently some people still build on case sensitiveMike Stump2009-07-231-1/+1
| | | | | | filesystems. llvm-svn: 76824
* Add warning for falling off the end of a function that should return aMike Stump2009-07-226-1/+313
| | | | | | | | | | | | | | | | | | | | | value. This is on by default, and controlled by -Wreturn-type (-Wmost -Wall). I believe there should be very few false positives, though the most interesting case would be: int() { bar(); } when bar does: bar() { while (1) ; } Here, we assume functions return, unless they are marked with the noreturn attribute. I can envision a fixit note for functions that never return normally that don't have a noreturn attribute to add a noreturn attribute. If anyone spots other false positives, let me know! llvm-svn: 76821
* Implement support for out-of-line definitions of the class members of classDouglas Gregor2009-07-2210-29/+93
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | templates, e.g., template<typename T> struct Outer { struct Inner; }; template<typename T> struct Outer<T>::Inner { // ... }; Implementing this feature required some extensions to ActOnTag, which now takes a set of template parameter lists, and is the precursor to removing the ActOnClassTemplate function from the parser Action interface. The reason for this approach is simple: the parser cannot tell the difference between a class template definition and the definition of a member of a class template; both have template parameter lists, and semantic analysis determines what that template parameter list means. There is still some cleanup to do with ActOnTag and ActOnClassTemplate. This commit provides the basic functionality we need, however. llvm-svn: 76820
* Fix test breakage.Eli Friedman2009-07-221-0/+2
| | | | llvm-svn: 76816
* Change Preprocessor to keep a copy of LangOptions instead of reference, like ↵Argyrios Kyrtzidis2009-07-221-1/+1
| | | | | | | | ASTContext. Now when creating a Preprocessor we can pass it a temporary LangOptions object instead of having to remember to keep it around. llvm-svn: 76815
* Improve CFG support for C++ throw expressions.Mike Stump2009-07-222-0/+42
| | | | llvm-svn: 76814
* Prep for new warning.Mike Stump2009-07-221-1/+1
| | | | llvm-svn: 76813
* Refactor 'PostStmt' and 'PreStmt' to subclass a common parent 'StmtPoint'.Ted Kremenek2009-07-2212-94/+107
| | | | | | | | | | | | Educate GRExprEngine::VisitGraph() about 'PreStmt'. Mark the constructor of 'PostStmt' to be explicit, preventing implicit conversions and the selection of the wrong 'generateNode' method in GRStmtNodeBuilder. Constify a bunch of arguments, which falls out of the changes to ProgramPoint. llvm-svn: 76809
* Slight code reorganization to allow instantiating post-inc/dec.Eli Friedman2009-07-222-9/+9
| | | | llvm-svn: 76807
* Calls to Sema::MatchTemplateParametersToScopeSpecifier should not depend on ↵Douglas Gregor2009-07-221-2/+5
| | | | | | the order of evaluation of their arguments to be correct. llvm-svn: 76804
* Use SaveAndRestore in 'clang/Analysis/Support/SaveAndRestore.h'Ted Kremenek2009-07-221-24/+1
| | | | llvm-svn: 76800
* Add AssumeDual method.Ted Kremenek2009-07-221-0/+6
| | | | llvm-svn: 76798
* Migrate the path-sensitive checking of 'nonnull' arguments over to the newTed Kremenek2009-07-222-31/+72
| | | | | | | | | '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. llvm-svn: 76797
* Fix the parsing of default arguments for inline member function Eli Friedman2009-07-224-29/+44
| | | | | | | | definitions. I'm not very familiar with this code, so please review. llvm-svn: 76796
* Make 'SaveAndRestore' and friends reusable classes in libAnalysis.Ted Kremenek2009-07-222-12/+45
| | | | llvm-svn: 76795
* Add support for registering 'Checker' objects with GRExprEngine.Ted Kremenek2009-07-222-6/+58
| | | | | | Add a 'previsit' stage (that dispatches to registered Checkers) when evaluating the effects of CallExprs. llvm-svn: 76794
* Add new 'Checker' and 'CheckerVisitor' classes, which represent a more powerfulTed Kremenek2009-07-223-0/+173
| | | | | | | | | 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). llvm-svn: 76793
* Add support for 'PreStmt' program points to GRCoreEngine and GRStmtNodeBuilder.Ted Kremenek2009-07-222-3/+7
| | | | llvm-svn: 76792
* Add 'PreStmt' program point. This will be used to represent checking forTed Kremenek2009-07-221-15/+32
| | | | | | preconditions (in GRExprEngine) before the statement itself is evaluated. llvm-svn: 76791
* Implement operator= for ExplodedNodeSet.Ted Kremenek2009-07-221-0/+5
| | | | llvm-svn: 76790
* Fix the problems with template argument deduction and array types forDouglas Gregor2009-07-222-9/+79
| | | | | | | | 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. llvm-svn: 76788
* Make -Wreturn-type be part of -Wmost and therefore -Wall.Mike Stump2009-07-221-0/+1
| | | | llvm-svn: 76784
* Fix some memory allocation/deallocation issuesDouglas Gregor2009-07-223-6/+6
| | | | llvm-svn: 76783
* Fix a nasty little use-after-free bug.Eli Friedman2009-07-221-2/+4
| | | | llvm-svn: 76779
* Canonicalize the types produced by template argument deduction.Douglas Gregor2009-07-222-1/+20
| | | | llvm-svn: 76777
* Improved on performance of the algorithm for proper ordering ofFariborz Jahanian2009-07-221-44/+39
| | | | | | ctor's initialization of bases and fields. llvm-svn: 76776
* Slighty more testing for template argument deduction with array argumentsDouglas Gregor2009-07-221-0/+3
| | | | llvm-svn: 76774
* Improve template argument deduction for array types, so that a parameterDouglas Gregor2009-07-223-0/+38
| | | | | | | | | | const T can be matched with, e.g., volatile int [5] llvm-svn: 76773
* Prep for new warning.Mike Stump2009-07-221-1/+1
| | | | llvm-svn: 76772
* Use isa instead of dyn_cast for conditionals.Mike Stump2009-07-222-3/+3
| | | | llvm-svn: 76771
* Use DICompositeType->replaceAllUsesWith().Devang Patel2009-07-221-4/+3
| | | | | | This requires llvm rev. 76769 or higher. llvm-svn: 76770
* "This patch implements the restrictions on union members detailed inDouglas Gregor2009-07-228-38/+443
| | | | | | [class.union]p1", from John McCall! llvm-svn: 76766
* Move bug reporter "visitors" to their own file and make them part of the publicTed Kremenek2009-07-224-326/+361
| | | | | | BugReporter API. No real functionality change. llvm-svn: 76760
* Allocate BaseOrMemberInitializers and CXXBaseSpecifier nodesFariborz Jahanian2009-07-223-12/+14
| | | | | | via ASTContext. llvm-svn: 76758
* Implement parsing and semantic analysis for out-of-line definitions of staticDouglas Gregor2009-07-225-5/+67
| | | | | | | data members of class templates. We don't instantiate the definitions yet, however. llvm-svn: 76756
* Fix a couple recent ABI regressions noticed during code review (fallout from ↵Steve Naroff2009-07-224-6/+17
| | | | | | | | 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. llvm-svn: 76755
* Switch some functions from using x86 builtins to using vector Eli Friedman2009-07-222-17/+17
| | | | | | operations. llvm-svn: 76753
* Add some documentation, to make it so the next person doens't selectMike Stump2009-07-221-0/+2
| | | | | | the wrong function. :-) llvm-svn: 76752
OpenPOWER on IntegriCloud