summaryrefslogtreecommitdiffstats
path: root/clang/lib
Commit message (Collapse)AuthorAgeFilesLines
* Move the "needs exception support" logic to clang. This also fixesRafael Espindola2009-10-012-11/+32
| | | | | | | -fno-exceptions in C++ code. We used to always define __EXCEPTIONS in C++. llvm-svn: 83199
* Fix a lame regression in IR gen for C++ delete expressions. PR5102Douglas Gregor2009-10-011-0/+2
| | | | llvm-svn: 83195
* A couple of refinements for laying out debug information forMike Stump2009-10-011-12/+15
| | | | | | BlockDeclRefDecls. llvm-svn: 83185
* Anonymous namespaces, sema + codegen. A lot of semantics are still broken,John McCall2009-10-014-5/+62
| | | | | | apparently because using directives aren't quite working correctly. llvm-svn: 83184
* Improve template argument deduction in the case where the parameterDouglas Gregor2009-09-301-7/+1
| | | | | | | | | type is a template-id (e.g., basic_ostream<CharT, Traits>) and the argument type is a class that has a derived class matching the parameter type. Previously, we were giving up on template argument deduction too early. llvm-svn: 83177
* When overload resolution fails for an overloaded operator, show theDouglas Gregor2009-09-302-15/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | overload candidates (but not the built-in ones). We still rely on the underlying built-in semantic analysis to produce the initial diagnostic, then print the candidates following that diagnostic. One side advantage of this approach is that we can perform more validation of C++'s operator overloading with built-in candidates vs. the semantic analysis for those built-in operators: when there are no viable candidates, we know to expect an error from the built-in operator handling code. Otherwise, we are not modeling the built-in semantics properly within operator overloading. This is checked as: assert(Result.isInvalid() && "C++ binary operator overloading is missing candidates!"); if (Result.isInvalid()) PrintOverloadCandidates(CandidateSet, /*OnlyViable=*/false); The assert() catches cases where we're wrong in a +Asserts build. The "if" makes sure that, if this happens in a production clang (-Asserts), we still build the proper built-in operator and continue on our merry way. This is effectively what happened before this change, but we've added the assert() to catch more flies. llvm-svn: 83175
* Issue good diagnostics when initializing a refernce type withFariborz Jahanian2009-09-301-3/+8
| | | | | | a bad initializer. Fixes pr4274. llvm-svn: 83169
* Add an error for function parameters that have a qualified address space ↵Tanya Lattner2009-09-301-1/+12
| | | | | | since this is not allowed by the embedded c extension spec. llvm-svn: 83165
* Note location of operators caused the circularity.Fariborz Jahanian2009-09-302-2/+6
| | | | llvm-svn: 83153
* <rdar://problem/7263113> Make clang produce gcc's objc_assign_StrongCast as ↵Fariborz Jahanian2009-09-301-1/+11
| | | | | | a result of type-cast of an ivar in assignment. llvm-svn: 83150
* Improve debugging information for BlockDeclRefExpr. WIP. Given thisMike Stump2009-09-303-0/+246
| | | | | | | scheme, we can switch the previous scheme over to using this code path. There's a bit of simplifications yet to do as well. llvm-svn: 83138
* Spare the processors of those poor wretches who have no choice but to writeJohn McCall2009-09-301-4/+3
| | | | | | unbounded chains of operator-> delegations. llvm-svn: 83134
* Detect operator-> chains of arbitrary length. Use a terrible data structureJohn McCall2009-09-301-3/+9
| | | | | | to strike fear into the hearts of CPUs everywhere. llvm-svn: 83133
* self-referecing operator '->' member function was causingFariborz Jahanian2009-09-301-0/+5
| | | | | | infinit recursion. This patch fixes it. [13.3.1.2]-p2 llvm-svn: 83124
* Find operators new/delete in base classes. FIXME -= 2;Douglas Gregor2009-09-301-5/+4
| | | | llvm-svn: 83119
* Desugaring optimizations. Add single-step desugaring methods to allJohn McCall2009-09-294-66/+66
| | | | | | | | | concrete types. Use unqualified desugaring for getAs<> and sundry. Fix a few users to either not desugar or use qualified desugar, as seemed appropriate. Removed Type's qualified desugar method, as it was easy to accidentally use instead of QualType's. llvm-svn: 83116
* The C++ delete expression strips cv-qualifiers from the pointed-to type. My ↵Douglas Gregor2009-09-291-0/+12
| | | | | | previous fix eliminated this behavior, so bring it back again. llvm-svn: 83113
* Pull TypeLocVisitor into its own header file.Argyrios Kyrtzidis2009-09-295-5/+5
| | | | llvm-svn: 83112
* Keep track of type references in DeclReferenceMap.Argyrios Kyrtzidis2009-09-292-1/+45
| | | | llvm-svn: 83111
* In ASTVisitor, call the correct base methods.Argyrios Kyrtzidis2009-09-291-4/+4
| | | | llvm-svn: 83110
* 13.1-p3 Overloadable declarationsFariborz Jahanian2009-09-291-2/+4
| | | | | | Parameter declarations that differ only in the presence or absence of const and/or volatile are equivalent. llvm-svn: 83104
* Resolve a source location inside the return type of a functon.Argyrios Kyrtzidis2009-09-291-0/+3
| | | | llvm-svn: 83101
* Resolve a source location that is inside a type declarator.Argyrios Kyrtzidis2009-09-291-4/+134
| | | | llvm-svn: 83098
* Introduce ObjCInterfaceLoc which provides type source information for ObjC ↵Argyrios Kyrtzidis2009-09-294-0/+27
| | | | | | interfaces. llvm-svn: 83097
* Modify ASTLocation and apart from being a Decl or Stmt, allow it to also be:Argyrios Kyrtzidis2009-09-294-98/+55
| | | | | | | -A NamedDecl reference -A TypeLoc llvm-svn: 83095
* Introduce ObjCProtocolListLoc for keeping source location information for ↵Argyrios Kyrtzidis2009-09-296-17/+84
| | | | | | protocol references. llvm-svn: 83094
* Introduce ObjCProtocolListType type subclass.Argyrios Kyrtzidis2009-09-295-0/+81
| | | | | | | | | This is used only for keeping detailed type source information for protocol references, it should not participate in the semantics of the type system. Its protocol list is not canonicalized. llvm-svn: 83093
* Move DeclSpec::setProtocolQualifiers() out of line.Argyrios Kyrtzidis2009-09-291-0/+13
| | | | llvm-svn: 83092
* Keep protocol source locations when parsing protocol references.Argyrios Kyrtzidis2009-09-292-20/+41
| | | | llvm-svn: 83091
* Introduce Type::getTypeClassName() that returns the string associated with ↵Argyrios Kyrtzidis2009-09-291-0/+9
| | | | | | the TypeClass enum. llvm-svn: 83090
* Introduce TypeLoc::getSourceRange().Argyrios Kyrtzidis2009-09-291-24/+24
| | | | llvm-svn: 83089
* -Introduce TypeLoc::getOpaqueData()Argyrios Kyrtzidis2009-09-291-1/+1
| | | | | | -Make TypeLoc's constructor public. llvm-svn: 83088
* Add more const-goodness to ASTLocation.Argyrios Kyrtzidis2009-09-292-13/+13
| | | | llvm-svn: 83087
* Fix truck sized thinko where Darwin/ARM toolchain didn't look for programs inDaniel Dunbar2009-09-291-0/+7
| | | | | | libexec, *blush*. llvm-svn: 83086
* Handle C++ delete expressions when the overloaded delete operator is aDouglas Gregor2009-09-293-21/+68
| | | | | | | | | | | "usual deallocation function" with two arguments. CodeGen will have to handle this case specifically, since the value for the second argument (the size of the allocated object) may have to be computed at run time. Fixes the Sema part of PR4782. llvm-svn: 83080
* Fixes a nasty bug which only turned up in 32bit build of clang andFariborz Jahanian2009-09-291-1/+7
| | | | | | | | had to do with an initialized field when multiple type conversions are ambiguous but must be treated as user defined conversion for overload resolution purposes. llvm-svn: 83079
* Fix: <rdar://problem/7261075> [RegionStore] crash when handling load: ↵Ted Kremenek2009-09-291-1/+8
| | | | | | | | '*((unsigned int *)"????")' This issue was originally reported via personal email by Thomas Clement! llvm-svn: 83069
* Make sure to flush raw_string_ostream, from John ThompsonDouglas Gregor2009-09-291-1/+1
| | | | llvm-svn: 83066
* Slightly improve the semantics of extern templates for member functions of ↵Douglas Gregor2009-09-291-2/+3
| | | | | | class templates llvm-svn: 83063
* Fix really insidious bug in RegionStoreManager::RemoveDeadBindings()Ted Kremenek2009-09-291-155/+161
| | | | | | | | | | identified with a false positive reported by Thomas Clement. This involved doing another rewrite of RegionStoreManager::RemoveDeadBindings(), which phrases the entire problem of scanning for dead regions as a graph exploration problem. It is more methodic than the previous implementation. llvm-svn: 83053
* Handle CXXMemberCallExprs that point to a static method. Fixes PR5093.Anders Carlsson2009-09-291-0/+8
| | | | llvm-svn: 83045
* Reapply most of r82939, but add a guard that FieldRegions and friendsTed Kremenek2009-09-291-4/+9
| | | | | | | | | are only specially treated by RegionStore::InvalidateRegion() when their super region is also invalidated. When this isn't the case, conjure a new symbol for a FieldRegion. Thanks to Zhongxing Xu and Daniel Dunbar for pointing out this issue. llvm-svn: 83043
* Handle CK_BaseToDerivedMemberPointer for member function pointers. Fixes PR5091.Anders Carlsson2009-09-293-11/+62
| | | | llvm-svn: 83041
* Revert r82939. We can only not special case FieldRegions when the super ↵Ted Kremenek2009-09-291-9/+5
| | | | | | region has also been invalidated. llvm-svn: 83040
* Improve support for member function pointers.Anders Carlsson2009-09-293-3/+26
| | | | llvm-svn: 83039
* Use a switch statement in VisitCastExpr.Anders Carlsson2009-09-291-12/+16
| | | | llvm-svn: 83038
* Make hasAggregateLLVMType use positive checks.Anders Carlsson2009-09-291-5/+1
| | | | llvm-svn: 83037
* Fix http://llvm.org/PR5090.Mike Stump2009-09-292-1/+6
| | | | llvm-svn: 83035
* Define and use a helper method to call a type conversionFariborz Jahanian2009-09-283-22/+25
| | | | | | function. llvm-svn: 83027
* Minor API change. No change in functionality.Fariborz Jahanian2009-09-282-2/+2
| | | | llvm-svn: 83022
OpenPOWER on IntegriCloud