| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
Radar 8400356.
llvm-svn: 113397
|
|
|
|
|
|
| |
I think this wraps up all the legal cases.
llvm-svn: 113096
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
operators (and, or, etc.) to be used as selectors
to match g++'s behavior.
llvm-svn: 112935
|
|
|
|
|
|
| |
statement header (fixes radar 8295106).
llvm-svn: 112443
|
|
|
|
| |
llvm-svn: 112365
|
|
|
|
| |
llvm-svn: 112307
|
|
|
|
|
|
|
|
| |
contain a ObjCObjectPointerType since r111699.
Don't assume that they are only PointerTypes or we will crash.
llvm-svn: 111798
|
|
|
|
|
|
| |
by Jean-Daniel Dupas.
llvm-svn: 111700
|
|
|
|
|
|
| |
objctive-c pointer conversions. Fixes pr7936.
llvm-svn: 111699
|
|
|
|
|
|
|
| |
does not implement 'countByEnumeratingWithState' API.
Implements radar 7634669.
llvm-svn: 110964
|
|
|
|
| |
llvm-svn: 110729
|
|
|
|
|
|
| |
(radar 8127244).
llvm-svn: 110702
|
|
|
|
| |
llvm-svn: 110514
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
found within contexts other than the translation unit.
llvm-svn: 110417
|
|
|
|
|
|
| |
pointers like it can with normal and member pointers.
llvm-svn: 110313
|
|
|
|
|
|
|
| |
one because we're referencing a variable of type NSString &), the
resulting type is an ObjCObjectPointerType.
llvm-svn: 109753
|
|
|
|
|
|
| |
Diagnose attempts to do this under the GNU or fragile NeXT runtimes.
llvm-svn: 109298
|
|
|
|
|
|
| |
pointer" diagnostic to handle references, too.
llvm-svn: 107372
|
|
|
|
|
|
| |
require a base-to-derived pointer conversion.
llvm-svn: 107349
|
|
|
|
| |
llvm-svn: 107153
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
complete before attempting to bind it to a temporary.
Fixes PR7386.
llvm-svn: 106130
|
|
|
|
|
|
|
| |
non-dependent type or template name, respectively, in C++98/03. Fixes
PR7111 and <rdar://problem/8002682>.
llvm-svn: 105968
|
|
|
|
|
|
| |
to bool" in the sense of C++ [over.ics.rank]p4 bullet 1. I have decreed it.
llvm-svn: 105817
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
class for UnresolvedLookupExprs, even when occuring on template
names" along with a fix for an Objective-C++ crasher it introduced.
llvm-svn: 104277
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
object variables and functions returning such objects.
llvm-svn: 104168
|
|
|
|
| |
llvm-svn: 104019
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
Completes radar 7963410.
llvm-svn: 103719
|
|
|
|
|
|
| |
magic type that 'id' is a pointer to.
llvm-svn: 103708
|
|
|
|
|
|
| |
against pointer patterns.
llvm-svn: 103706
|
|
|
|
|
|
|
| |
class object used as a receiver to an objective-c
pointer via a converwsion function. wip.
llvm-svn: 103672
|
|
|
|
|
|
| |
another.
llvm-svn: 103630
|
|
|
|
|
|
| |
Fixes radar 7952457.
llvm-svn: 103447
|
|
|
|
| |
llvm-svn: 102956
|
|
|
|
| |
llvm-svn: 102390
|
|
|
|
|
|
|
| |
Objective-C++. This is the last bit of (non-blocks-related) template
instantiation logic for Objective-C++. Yay!
llvm-svn: 102382
|
|
|
|
| |
llvm-svn: 102379
|
|
|
|
|
|
|
|
| |
references and isa expressions. Also, test template instantiation of
unresolved member references to Objective-C ivar references and isa
expressions.
llvm-svn: 102374
|
|
|
|
|
|
| |
statements. This is the last of the Objective-C statements.
llvm-svn: 102356
|
|
|
|
| |
llvm-svn: 102147
|
|
|
|
|
|
|
|
|
|
| |
statement, i.e.,
for (element in collection) {
// do something
}
llvm-svn: 102138
|
|
|
|
| |
llvm-svn: 102134
|
|
|
|
| |
llvm-svn: 102133
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|