summaryrefslogtreecommitdiffstats
path: root/clang
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-012-0/+14
| | | | llvm-svn: 83195
* Add support for class and protocol references.Steve Naroff2009-10-013-145/+203
| | | | llvm-svn: 83186
* 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-017-5/+97
| | | | | | apparently because using directives aren't quite working correctly. llvm-svn: 83184
* Improve template argument deduction in the case where the parameterDouglas Gregor2009-09-302-8/+4
| | | | | | | | | 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-307-22/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Tweak CHECK lines to eliminate a failure on i686-apple-darwin10Douglas Gregor2009-09-301-1/+1
| | | | llvm-svn: 83173
* Issue good diagnostics when initializing a refernce type withFariborz Jahanian2009-09-303-3/+12
| | | | | | a bad initializer. Fixes pr4274. llvm-svn: 83169
* Add an error for function parameters that have a qualified address space ↵Tanya Lattner2009-09-303-3/+20
| | | | | | since this is not allowed by the embedded c extension spec. llvm-svn: 83165
* fix line #'sChris Lattner2009-09-301-2/+2
| | | | llvm-svn: 83162
* add some more popular examples, color code warning: and error: like the ↵Chris Lattner2009-09-301-14/+57
| | | | | | command line. llvm-svn: 83161
* Convert from nonportable grep to filecheck, patch by John ThompsonChris Lattner2009-09-301-3/+22
| | | | llvm-svn: 83158
* Update C++ status pageDouglas Gregor2009-09-301-94/+95
| | | | llvm-svn: 83157
* Note location of operators caused the circularity.Fariborz Jahanian2009-09-303-6/+10
| | | | llvm-svn: 83153
* <rdar://problem/7263113> Make clang produce gcc's objc_assign_StrongCast as ↵Fariborz Jahanian2009-09-302-1/+38
| | | | | | a result of type-cast of an ivar in assignment. llvm-svn: 83150
* update copyright.Chris Lattner2009-09-301-1/+1
| | | | llvm-svn: 83149
* 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-302-3/+25
| | | | | | to strike fear into the hearts of CPUs everywhere. llvm-svn: 83133
* self-referecing operator '->' member function was causingFariborz Jahanian2009-09-303-0/+18
| | | | | | 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-302-8/+6
| | | | llvm-svn: 83119
* Desugaring optimizations. Add single-step desugaring methods to allJohn McCall2009-09-296-79/+206
| | | | | | | | | 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-292-0/+17
| | | | | | previous fix eliminated this behavior, so bring it back again. llvm-svn: 83113
* Pull TypeLocVisitor into its own header file.Argyrios Kyrtzidis2009-09-297-41/+63
| | | | 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
* Fix Decl class hierarchy.Argyrios Kyrtzidis2009-09-291-4/+4
| | | | llvm-svn: 83109
* 13.1-p3 Overloadable declarationsFariborz Jahanian2009-09-293-3/+15
| | | | | | 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
* When pointing at a type decl reference, ASTLocation is a NamedDeclRef.Argyrios Kyrtzidis2009-09-291-0/+2
| | | | llvm-svn: 83099
* 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-296-0/+60
| | | | | | interfaces. llvm-svn: 83097
* Introduce TypedefLoc::getTypedefDecl().Argyrios Kyrtzidis2009-09-291-0/+4
| | | | llvm-svn: 83096
* Modify ASTLocation and apart from being a Decl or Stmt, allow it to also be:Argyrios Kyrtzidis2009-09-298-133/+157
| | | | | | | -A NamedDecl reference -A TypeLoc llvm-svn: 83095
* Introduce ObjCProtocolListLoc for keeping source location information for ↵Argyrios Kyrtzidis2009-09-298-17/+152
| | | | | | protocol references. llvm-svn: 83094
* Introduce ObjCProtocolListType type subclass.Argyrios Kyrtzidis2009-09-299-4/+133
| | | | | | | | | 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-292-9/+14
| | | | llvm-svn: 83092
* Keep protocol source locations when parsing protocol references.Argyrios Kyrtzidis2009-09-294-22/+56
| | | | llvm-svn: 83091
* Introduce Type::getTypeClassName() that returns the string associated with ↵Argyrios Kyrtzidis2009-09-292-0/+11
| | | | | | the TypeClass enum. llvm-svn: 83090
* Introduce TypeLoc::getSourceRange().Argyrios Kyrtzidis2009-09-292-26/+26
| | | | llvm-svn: 83089
* -Introduce TypeLoc::getOpaqueData()Argyrios Kyrtzidis2009-09-292-10/+11
| | | | | | -Make TypeLoc's constructor public. llvm-svn: 83088
* Add more const-goodness to ASTLocation.Argyrios Kyrtzidis2009-09-293-21/+20
| | | | llvm-svn: 83087
* Fix truck sized thinko where Darwin/ARM toolchain didn't look for programs inDaniel Dunbar2009-09-292-0/+11
| | | | | | libexec, *blush*. llvm-svn: 83086
* Add a test case demonstrating a situation where we get protocol type checkingDaniel Dunbar2009-09-291-0/+15
| | | | | | right for multiple anonymous categories. llvm-svn: 83085
* Handle C++ delete expressions when the overloaded delete operator is aDouglas Gregor2009-09-295-21/+90
| | | | | | | | | | | "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
* Update checker build.Ted Kremenek2009-09-291-1/+1
| | | | llvm-svn: 83074
* Fix: <rdar://problem/7261075> [RegionStore] crash when handling load: ↵Ted Kremenek2009-09-292-1/+17
| | | | | | | | '*((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
OpenPOWER on IntegriCloud