summaryrefslogtreecommitdiffstats
path: root/clang/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Stub out an error so we don't crash.Eli Friedman2009-08-271-1/+8
| | | | llvm-svn: 80207
* Add a BuildCXXTemporaryObjectExpr and use it so default arguments will be ↵Anders Carlsson2009-08-273-9/+47
| | | | | | instantiated correctly for temporary object expressions. llvm-svn: 80206
* In ActOnCXXTypeConstructExpr, check that the type is complete and ↵Anders Carlsson2009-08-271-14/+14
| | | | | | non-abstract before creating any expressions. This assures that any templates are instantiated if necessary. llvm-svn: 80200
* Simplify 'Environment' to contain only one map from 'const Stmt*' to SVals, ↵Ted Kremenek2009-08-274-172/+131
| | | | | | greatly simplifying the logic of the analyzer in many places. We now only distinguish between block-level expressions and subexpressions in Environment::RemoveDeadBindings and GRState pretty-printing. llvm-svn: 80194
* New RequireNonAbstractType function.Anders Carlsson2009-08-272-4/+18
| | | | llvm-svn: 80183
* Bye-bye old RequireCompleteType.Anders Carlsson2009-08-269-56/+44
| | | | llvm-svn: 80182
* Fixup codegen for static dispatch to a virtual function that wasMike Stump2009-08-261-1/+1
| | | | | | almost correct. :-) llvm-svn: 80181
* ir-gen for type convesion of class objects. WIP.Fariborz Jahanian2009-08-265-1/+38
| | | | llvm-svn: 80178
* Make sure to bump the reference count of the last element in the ↵Douglas Gregor2009-08-261-0/+1
| | | | | | ParenListExpr representing the direct initializer of a declaration llvm-svn: 80177
* Remove another unused argument.Anders Carlsson2009-08-262-4/+3
| | | | llvm-svn: 80175
* Remove the PrintType argument from RequireCompleteType.Anders Carlsson2009-08-264-34/+27
| | | | llvm-svn: 80174
* When a member reference expression includes a qualifier on the memberDouglas Gregor2009-08-269-26/+127
| | | | | | | | | | | | | | | | | name, e.g., x->Base::f() retain the qualifier (and its source range information) in a new subclass of MemberExpr called CXXQualifiedMemberExpr. Provide construction, transformation, profiling, printing, etc., for this new expression type. When a virtual function is called via a qualified name, don't emit a virtual call. Instead, call that function directly. Mike, could you add a CodeGen test for this, too? llvm-svn: 80167
* Add a RequireCompleteType variant that takes a PartialDiagnostic. The old ↵Anders Carlsson2009-08-263-5/+30
| | | | | | RequireCompleteType now creates a PartialDiagnostic and calls the new function. llvm-svn: 80165
* Regularize the case and sort.Mike Stump2009-08-266-13/+13
| | | | llvm-svn: 80163
* Implement support for C++ direct initializers that involve dependentDouglas Gregor2009-08-262-4/+45
| | | | | | types or type-dependent expressions. llvm-svn: 80143
* More work for conversion functions.Mike Stump2009-08-261-0/+3
| | | | llvm-svn: 80142
* Implement virtual dispatch. :-) This is self-consistent with clang,Mike Stump2009-08-262-33/+92
| | | | | | | but not yet necessarily perfectly consistent with gcc. Also addressed Doug and John's comments. llvm-svn: 80137
* AST for conversion by conversion functions. WIP.Fariborz Jahanian2009-08-261-6/+14
| | | | llvm-svn: 80135
* Make address-space qualification work correctly for compound literals. Eli Friedman2009-08-261-2/+3
| | | | | | | | | | Issue reported on cfe-dev. Also fixed the code to use isConstant to determine whether to generate a constant global, to be consistent with CodeGenModule. This probably needs to be refactored to deal with C++, though. llvm-svn: 80131
* More support for pseudo dtors.Anders Carlsson2009-08-261-9/+26
| | | | llvm-svn: 80129
* update to CXXFunctionalCastExpr to support ir-gen forFariborz Jahanian2009-08-265-20/+40
| | | | | | type convesions of class objects [class.conv]. WIP. llvm-svn: 80127
* Make sure to compare primary declaration contexts when determining whether a ↵Douglas Gregor2009-08-261-1/+2
| | | | | | declaration is in scope llvm-svn: 80126
* When we know that we are parsing a class-name, implicitly construct aDouglas Gregor2009-08-265-7/+20
| | | | | | | | | | | | | | TypenameType if getTypeName is looking at a member of an unknown specialization. This allows us to properly parse class templates that derived from type that could only otherwise be described by a typename type, e.g., template<class T> struct X {}; template<typename T> struct Y : public X<T>::X { }; Fixes PR4381. llvm-svn: 80123
* Add Sema::BuildMemberReferenceExpr and have Sema::ActOnMemberReferenceExpr ↵Anders Carlsson2009-08-262-37/+61
| | | | | | call it. llvm-svn: 80122
* Address some of Doug's comments.Anders Carlsson2009-08-263-4/+4
| | | | llvm-svn: 80114
* Fix for overloaded binary operators whose operands need implicitDouglas Gregor2009-08-261-16/+17
| | | | | | conversions, from Sylvere Teissier! llvm-svn: 80112
* Source location information for ? and : in a ConditionalOperator, from Enea ↵Douglas Gregor2009-08-265-8/+11
| | | | | | Zaffanella llvm-svn: 80097
* Fix bug in __extension__ handling for declarations, from AbramoDouglas Gregor2009-08-261-3/+14
| | | | | | Bagnara with a fix from Enea Zaffanella! llvm-svn: 80094
* Revert r80064 since it broke the build.Anders Carlsson2009-08-262-94/+26
| | | | llvm-svn: 80066
* Implement virtual dispatch. :-) This is self-consistent with clang, but ↵Mike Stump2009-08-262-26/+94
| | | | | | | | not yet necessarily perfectly consistent with gcc. llvm-svn: 80064
* Simplified default construction of array data membersFariborz Jahanian2009-08-261-17/+5
| | | | | | in the constructor prologue. llvm-svn: 80060
* Improve diagnostics and recovery when the nested-name-specifier of aDouglas Gregor2009-08-265-27/+52
| | | | | | | | | | | | qualified name does not actually refer into a class/class template/class template partial specialization. Improve printing of nested-name-specifiers to eliminate redudant qualifiers. Also, make it possible to output a nested-name-specifier through a DiagnosticBuilder, although there are relatively few places that will use this leeway. llvm-svn: 80056
* Parsing of pseudo-destructors.Anders Carlsson2009-08-254-9/+56
| | | | llvm-svn: 80055
* Fix regression in BasicStoreManager caused by implicitly casting loaded ↵Ted Kremenek2009-08-251-5/+9
| | | | | | values and trying to load/store from arrays. RegionStoreManager already properly handles these cases well; we just need to gracefully not handle this case in BasicStoreManager. This fixes PR 4781. llvm-svn: 80051
* Handle pointer arithmetic in RegionStoreManager involving Objective-C pointersTed Kremenek2009-08-251-2/+8
| | | | | | when using the non-fragile Objective-C ABI. This fixes <rdar://problem/7168531>. llvm-svn: 80047
* Improve support for out-of-line definitions of nested templates andDouglas Gregor2009-08-2513-87/+108
| | | | | | | | | | | | | | | | | | | | | | | | | | | | their members, including member class template, member function templates, and member classes and functions of member templates. To actually parse the nested-name-specifiers that qualify the name of an out-of-line definition of a member template, e.g., template<typename X> template<typename Y> X Outer<X>::Inner1<Y>::foo(Y) { return X(); } we need to look for the template names (e.g., "Inner1") as a member of the current instantiation (Outer<X>), even before we have entered the scope of the current instantiation. Since we can't do this in general (i.e., we should not be looking into all dependent nested-name-specifiers as if they were the current instantiation), we rely on the parser to tell us when it is parsing a declaration specifier sequence, and, therefore, when we should consider the current scope specifier to be a current instantiation. Printing of complicated, dependent nested-name-specifiers may be somewhat broken by this commit; I'll add tests for this issue and fix the problem (if it still exists) in a subsequent commit. llvm-svn: 80044
* Clarify the difference between substitution and instantiation by renamingJohn McCall2009-08-256-119/+118
| | | | | | functions that don't instantiate definitions. llvm-svn: 80037
* Fix crash reported in <rdar://problem/7124210> by "back-porting" some of theTed Kremenek2009-08-253-17/+23
| | | | | | | implicit cast logic in RegionStoreManager to BasicStoreManager. This involved moving CastRetriedVal from RegionStoreManager to StoreManager. llvm-svn: 80026
* Move logic of GRExprEngine::EvalBinOp to SValuator::EvalBinOp.Ted Kremenek2009-08-252-37/+34
| | | | llvm-svn: 80018
* Modify an assert to capture the restriction on friend declarations moreJohn McCall2009-08-251-1/+2
| | | | | | | accurately. Prevents the assert from triggering incorrectly when friending functions first declared in extern "C" contexts. Fixes bug 4757. llvm-svn: 80016
* Implement out-of-line definitions of nested class templates. Most ofDouglas Gregor2009-08-253-93/+75
| | | | | | | | | the logic is there for out-of-line definitions with multiple levels of nested templates, but this is still a work-in-progress: we're having trouble determining when we should look into a dependent nested-name-specifier. llvm-svn: 80003
* Skip over bases/fields with dependent types.Fariborz Jahanian2009-08-251-0/+4
| | | | | | Fixes pr4771. llvm-svn: 79999
* Update clang for raw_fd_ostream no longer requiring F_Force.Dan Gohman2009-08-254-10/+5
| | | | llvm-svn: 79991
* Handle the implicit 'this' parameter for format attributes.Anders Carlsson2009-08-251-3/+12
| | | | llvm-svn: 79987
* If a parameter has a default argument expression, make sure to instantiate ↵Anders Carlsson2009-08-251-0/+6
| | | | | | the parameter type before checking that the expression is a valid initializer. llvm-svn: 79986
* Emit conversion functions correctly.Anders Carlsson2009-08-251-0/+1
| | | | llvm-svn: 79985
* Improved support for default arguments in constructors for class templates.Anders Carlsson2009-08-251-18/+17
| | | | llvm-svn: 79984
* Remove CodeDecl and CFG from GRExprEngine and GRStateManager.Zhongxing Xu2009-08-256-79/+91
| | | | | | | Now AnalysisManager is the only place we can get CodeDecl. This leads to an API change: GRState::bindExpr() now takes the CFG argument. llvm-svn: 79980
* InitializeVarWithConstructor now returns true on failure.Anders Carlsson2009-08-253-7/+14
| | | | llvm-svn: 79976
* BuildCXXConstructExpr now returns an OwningExprResult.Anders Carlsson2009-08-256-24/+40
| | | | llvm-svn: 79975
OpenPOWER on IntegriCloud