summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaObjCXX
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix a crash when overloading id with objc_object*.Fariborz Jahanian2010-09-081-0/+20
| | | | | | Radar 8400356. llvm-svn: 113397
* "const id<NSFoo> *" instead of "id<NSFoo> const *".Chris Lattner2010-09-051-2/+2
| | | | | | I think this wraps up all the legal cases. llvm-svn: 113096
* make clang print types as "const int *" instead of "int const*",Chris Lattner2010-09-051-1/+1
| | | | | | | which is should have done from the beginning. As usual, the most fun with this sort of change is updating all the testcases. llvm-svn: 113090
* Patch to allow alternative representation of c++Fariborz Jahanian2010-09-031-0/+24
| | | | | | | operators (and, or, etc.) to be used as selectors to match g++'s behavior. llvm-svn: 112935
* ObjClang++: Allow declaration of block variable in a collectionFariborz Jahanian2010-08-291-0/+14
| | | | | | statement header (fixes radar 8295106). llvm-svn: 112443
* suppress annoying textual repetition as 'aka'Gabor Greif2010-08-281-1/+1
| | | | llvm-svn: 112365
* handle :: in selectors in objc++ mode, rdar://8366474Chris Lattner2010-08-271-0/+4
| | | | llvm-svn: 112307
* In Sema::AddBuiltinOperatorCandidates, candidate pointer types set can also ↵Argyrios Kyrtzidis2010-08-231-0/+10
| | | | | | | | contain a ObjCObjectPointerType since r111699. Don't assume that they are only PointerTypes or we will crash. llvm-svn: 111798
* Contributed test case for PR7936Fariborz Jahanian2010-08-211-1/+2
| | | | | | by Jean-Daniel Dupas. llvm-svn: 111700
* patch to support comparison involvingFariborz Jahanian2010-08-211-0/+18
| | | | | | objctive-c pointer conversions. Fixes pr7936. llvm-svn: 111699
* Patch to issue warning when colllection expresion's typeFariborz Jahanian2010-08-121-0/+1
| | | | | | | does not implement 'countByEnumeratingWithState' API. Implements radar 7634669. llvm-svn: 110964
* Fix test to not depend on objc.h header.Fariborz Jahanian2010-08-101-2/+0
| | | | llvm-svn: 110729
* an objective-c++ test for -Wstrict-selector-matchFariborz Jahanian2010-08-101-0/+20
| | | | | | (radar 8127244). llvm-svn: 110702
* Add some more tests for reference binding of Objective-C objectsDouglas Gregor2010-08-071-1/+11
| | | | llvm-svn: 110514
* Allow reference binding of a reference of Objective-C object type toDouglas Gregor2010-08-071-0/+19
| | | | | | | | an lvalue of another, compatible Objective-C object type (e.g., a subclass). Introduce a new initialization sequence step kind to describe this binding, along with a new cast kind. Fixes PR7741. llvm-svn: 110513
* Properly pop out of Objective-C method declarations when they are (ill-formedly)John McCall2010-08-061-0/+5
| | | | | | found within contexts other than the translation unit. llvm-svn: 110417
* Permit template argument deduction to add qualifiers within ObjC objectJohn McCall2010-08-051-0/+7
| | | | | | pointers like it can with normal and member pointers. llvm-svn: 110313
* When taking the address of a value of Objective-C object type (e.g.,Douglas Gregor2010-07-291-0/+7
| | | | | | | one because we're referencing a variable of type NSString &), the resulting type is an ObjCObjectPointerType. llvm-svn: 109753
* Support catching Objective C pointers in C++ under the non-fragile NeXT runtime.John McCall2010-07-241-0/+12
| | | | | | Diagnose attempts to do this under the GNU or fragile NeXT runtimes. llvm-svn: 109298
* Extend the "cannot convert from base class pointer to derived classDouglas Gregor2010-07-011-1/+1
| | | | | | pointer" diagnostic to handle references, too. llvm-svn: 107372
* Improve diagnostic when we fail to pick an overload because it wouldDouglas Gregor2010-06-301-0/+8
| | | | | | require a base-to-derived pointer conversion. llvm-svn: 107349
* tests: Use %clangxx when using driver for C++, in case C++ support is disabled.Daniel Dunbar2010-06-291-1/+1
| | | | llvm-svn: 107153
* Fix the recently-added warning about 'typename' and 'template'Douglas Gregor2010-06-161-3/+3
| | | | | | | | | disambiguation keywords outside of templates in C++98/03. Previously, the warning would fire when the associated nested-name-specifier was not dependent, but that was a misreading of the C++98/03 standard: now, we complain only when we're outside of any template. llvm-svn: 106161
* Make sure result type of objc++ message expression isFariborz Jahanian2010-06-161-0/+26
| | | | | | | complete before attempting to bind it to a temporary. Fixes PR7386. llvm-svn: 106130
* Warn when a 'typename' or a 'template' keyword refers to aDouglas Gregor2010-06-141-3/+3
| | | | | | | non-dependent type or template name, respectively, in C++98/03. Fixes PR7111 and <rdar://problem/8002682>. llvm-svn: 105968
* Conversions from Objective C object pointers to bool are "pointer conversionsJohn McCall2010-06-111-0/+9
| | | | | | to bool" in the sense of C++ [over.ics.rank]p4 bullet 1. I have decreed it. llvm-svn: 105817
* Implement support for variable length arrays in C++. VLAs are limitedDouglas Gregor2010-05-221-1/+1
| | | | | | | | | | | | | in several important ways: - VLAs of non-POD types are not permitted. - VLAs cannot be used in conjunction with C++ templates. These restrictions are intended to keep VLAs out of the parts of the C++ type system where they cause the most trouble. Fixes PR5678 and <rdar://problem/8013618>. llvm-svn: 104443
* Reinstate r104117, Chandler Carruth's change that "[provides] a namingDouglas Gregor2010-05-201-0/+7
| | | | | | | class for UnresolvedLookupExprs, even when occuring on template names" along with a fix for an Objective-C++ crasher it introduced. llvm-svn: 104277
* Various small fixes for construction/destruction of Objective-C++Douglas Gregor2010-05-201-0/+29
| | | | | | | | | | instance variables: - Use isRecordType() rather than isa<RecordType>(), so that we see through typedefs in ivar types. - Mark the destructor as referenced - Perform C++ access control on the destructor llvm-svn: 104206
* Adds support for ObjC++'s GC attribute on declaration ofFariborz Jahanian2010-05-191-0/+51
| | | | | | object variables and functions returning such objects. llvm-svn: 104168
* Permit Objective C object pointers to be const_casted.John McCall2010-05-181-0/+13
| | | | llvm-svn: 104019
* Substantially alter the design of the Objective C type AST by introducingJohn McCall2010-05-151-0/+30
| | | | | | | | | | | | | | | | | | | | | ObjCObjectType, which is basically just a pair of one of {primitive-id, primitive-Class, user-defined @class} with a list of protocols. An ObjCObjectPointerType is therefore just a pointer which always points to one of these types (possibly sugared). ObjCInterfaceType is now just a kind of ObjCObjectType which happens to not carry any protocols. Alter a rather large number of use sites to use ObjCObjectType instead of ObjCInterfaceType. Store an ObjCInterfaceType as a pointer on the decl rather than hashing them in a FoldingSet. Remove some number of methods that are no longer used, at least after this patch. By simplifying ObjCObjectPointerType, we are now able to easily remove and apply pointers to Objective-C types, which is crucial for a certain kind of ObjC++ metaprogramming common in WebKit. llvm-svn: 103870
* Objective-C++ Sema. Fix a bug in instantiation of receivers.Fariborz Jahanian2010-05-132-4/+90
| | | | | | Completes radar 7963410. llvm-svn: 103719
* Rebuild builtin_id * as an ObjCObjectPointerType, where builtin_id is theJohn McCall2010-05-131-0/+4
| | | | | | magic type that 'id' is a pointer to. llvm-svn: 103708
* When performing template argument deduction, match Objective C pointersJohn McCall2010-05-131-0/+24
| | | | | | against pointer patterns. llvm-svn: 103706
* Objective-C++ Sema. Support for conversion of a C++Fariborz Jahanian2010-05-121-0/+51
| | | | | | | class object used as a receiver to an objective-c pointer via a converwsion function. wip. llvm-svn: 103672
* Objective-C++ Sema - Allow static_cast of one objc pointer toFariborz Jahanian2010-05-121-0/+29
| | | | | | another. llvm-svn: 103630
* Allow static_cast to objective-c pointers.Fariborz Jahanian2010-05-101-0/+15
| | | | | | Fixes radar 7952457. llvm-svn: 103447
* Test for my last patch.Fariborz Jahanian2010-05-031-0/+25
| | | | llvm-svn: 102956
* Diagnose declaration of reference typed ivars.Fariborz Jahanian2010-04-261-0/+5
| | | | llvm-svn: 102390
* Implement template instantiation for implicit property references inDouglas Gregor2010-04-261-0/+22
| | | | | | | Objective-C++. This is the last bit of (non-blocks-related) template instantiation logic for Objective-C++. Yay! llvm-svn: 102382
* Implement template instantiation for ObjCPropertyRefExpr.Douglas Gregor2010-04-261-11/+16
| | | | llvm-svn: 102379
* Implement template instantiation for value-dependent Objective-C ivarDouglas Gregor2010-04-261-0/+46
| | | | | | | | references and isa expressions. Also, test template instantiation of unresolved member references to Objective-C ivar references and isa expressions. llvm-svn: 102374
* Implement template instantiation for Objective-C @catchDouglas Gregor2010-04-261-2/+4
| | | | | | statements. This is the last of the Objective-C statements. llvm-svn: 102356
* Template instantiation for @try and @finally (but not @catch, yet).Douglas Gregor2010-04-221-0/+16
| | | | llvm-svn: 102147
* Template instantiation for the Objective-C "fast enumeration"Douglas Gregor2010-04-221-0/+35
| | | | | | | | | | statement, i.e., for (element in collection) { // do something } llvm-svn: 102138
* Template instantiation for Objective-C++ @synchronized statements.Douglas Gregor2010-04-221-0/+9
| | | | llvm-svn: 102134
* Implement template instantiation for Objective-C++ @throw statements.Douglas Gregor2010-04-221-0/+15
| | | | llvm-svn: 102133
* Implement template instantiation for Objective-C++ message sends. WeDouglas Gregor2010-04-221-0/+50
| | | | | | | | | | | | support dependent receivers for class and instance messages, along with dependent message arguments (of course), and check as much as we can at template definition time. This commit also deals with a subtle aspect of template instantiation in Objective-C++, where the type 'T *' can morph from a dependent PointerType into a non-dependent ObjCObjectPointer type. llvm-svn: 102071
* Whenever we complain about a failed initialization of a function orDouglas Gregor2010-04-222-2/+4
| | | | | | | | | | | | | | | | | method parameter, provide a note pointing at the parameter itself so the user does not have to manually look for the function/method being called and match up parameters to arguments. For example, we now get: t.c:4:5: warning: incompatible pointer types passing 'long *' to parameter of type 'int *' [-pedantic] f(long_ptr); ^~~~~~~~ t.c:1:13: note: passing argument to parameter 'x' here void f(int *x); ^ llvm-svn: 102038
OpenPOWER on IntegriCloud