| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 142406
|
|
|
|
|
|
| |
by reference. // rdar://10188258
llvm-svn: 142075
|
|
|
|
|
|
| |
// rdar://10239594
llvm-svn: 141915
|
|
|
|
| |
llvm-svn: 141793
|
|
|
|
|
|
| |
property in the diagnostic.
llvm-svn: 141745
|
|
|
|
|
|
| |
nonatomic. // rdar://10260017
llvm-svn: 141580
|
|
|
|
|
|
|
| |
related to a readwrite property, and
Sub's readwrite property. // rdar://9396329
llvm-svn: 141497
|
|
|
|
|
|
| |
for atomic setters which requires assignment operator.
llvm-svn: 141415
|
|
|
|
|
|
| |
on one accessor and user-provide with another.
llvm-svn: 141343
|
|
|
|
|
|
|
| |
operator= is called. Issue a warning for non-trivial case until
runtime support is provided. // rdar://6137845
llvm-svn: 141302
|
|
|
|
|
|
| |
continuation class into warning. // rdar://10231514
llvm-svn: 141100
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of always storing all source locations for the selector identifiers
we check whether all the identifiers are in a "standard" position; "standard" position is
-Immediately before the arguments: -(id)first:(int)x second:(int)y;
-With a space between the arguments: -(id)first: (int)x second: (int)y;
-For nullary selectors, immediately before ';': -(void)release;
In such cases we infer the locations instead of storing them.
llvm-svn: 140989
|
|
|
|
|
|
|
|
| |
objc method decls.
They are not stored in the AST yet.
llvm-svn: 140984
|
|
|
|
|
|
| |
from the selector.
llvm-svn: 140983
|
|
|
|
| |
llvm-svn: 140657
|
|
|
|
|
|
|
| |
protocol declares the property, as well as one of its superclasses.
Property will be implemented in the super class. // rdar://10120691
llvm-svn: 140586
|
|
|
|
|
|
| |
hasSameUnqualifiedType in //rdar://10156674
llvm-svn: 140576
|
|
|
|
|
|
| |
ingore the type qualifiers. // rdar://10156674
llvm-svn: 140571
|
|
|
|
|
|
|
| |
must match property type declaration in its
primary class. // rdar://10142679
llvm-svn: 140438
|
|
|
|
| |
llvm-svn: 140022
|
|
|
|
|
|
| |
is missing. // rdar//10127639
llvm-svn: 139988
|
|
|
|
|
|
|
| |
declared which does not force a 'copy' of the block literal
object. // rdar://9829425
llvm-svn: 139706
|
|
|
|
|
|
| |
their semantic attributes and then to take advantage of that.
llvm-svn: 139615
|
|
|
|
|
|
|
|
|
|
| |
language options. Use that .def file to declare the LangOptions class
and initialize all of its members, eliminating a source of annoying
initialization bugs.
AST serialization changes are next up.
llvm-svn: 139605
|
|
|
|
|
|
| |
in GC mode. // rdar://10073896
llvm-svn: 139235
|
|
|
|
|
|
|
| |
to be 'weak'. This prevents a crash and should
probably be flagged as error - later to come.
llvm-svn: 139211
|
|
|
|
|
|
| |
// rdar://10073896
llvm-svn: 139203
|
|
|
|
|
|
|
|
|
|
| |
synthesis. This new feature is currently placed under
-fobjc-default-synthesize-properties option
and is off by default pending further testing.
It will become the default feature soon.
// rdar://8843851
llvm-svn: 138913
|
|
|
|
|
|
|
| |
to class implementation where it is supposed to be
implemented. // rdar://10009982.
llvm-svn: 138714
|
|
|
|
|
|
|
| |
finding life-time conflict with its declared ivar.
// rdar://10007230
llvm-svn: 138659
|
|
|
|
|
|
| |
objc's decl context.
llvm-svn: 138267
|
|
|
|
| |
llvm-svn: 138253
|
|
|
|
|
|
| |
failures are resolved.
llvm-svn: 138234
|
|
|
|
|
|
| |
specified. // rdar://9971982
llvm-svn: 138062
|
|
|
|
| |
llvm-svn: 138049
|
|
|
|
|
|
|
|
|
|
| |
to modernity. Instead of passing down individual
context objects from parser to sema, establish decl
context in parser and have sema access current context
as needed. I still need to take of Doug's comment for
minor cleanups.
llvm-svn: 138040
|
|
|
|
|
|
|
|
| |
user-declared) as implicit.
This results in libclang ignoring such methods.
llvm-svn: 137852
|
|
|
|
| |
llvm-svn: 136658
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
@interface Foo : NSObject
@property (readonly) id myProp;
@end
@implementation Foo
@synthesize myProp;
@end
t.m:9:13: error: ARC forbids synthesizing a property of an Objective-C object with unspecified storage attribute
@synthesize myProp;
^
which is fine, we want the ownership of the synthesized ivar to be explicit. But we should _not_ emit an error
for the following cases, because we can get the ownership either from the declared ivar or from the property type:
@interface Foo : NSObject {
__weak id _myProp1;
id myProp2;
}
@property (readonly) id myProp1;
@property (readonly) id myProp2;
@property (readonly) __strong id myProp3;
@end
@implementation Foo
@synthesize myProp1 = _myProp1;
@synthesize myProp2;
@synthesize myProp3;
@end

rdar://9844006.
llvm-svn: 136155
|
|
|
|
|
|
|
|
|
|
| |
C function) implementation
will be rejected with a compilation error in ARC mode, and a compiler warning otherwise.
This may cause breakage in non-arc (and arc) tests which don't expect warning/error. Feel free
to fix the tests, or reverse the patch, if I am unavailable. // rdar://9818354 - WIP
llvm-svn: 135740
|
|
|
|
|
|
| |
attributes. Fixes <rdar://problem/9561076>.
llvm-svn: 135273
|
|
|
|
|
|
|
| |
Make it also available in ObjC++ propeties. Use common code for
objc and objc++ so they don't diverge. // rdar://9740328
llvm-svn: 135050
|
|
|
|
|
|
| |
Make it also available in ObjC++ propeties. // rdar://9740328
llvm-svn: 135001
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
it, not at its declaration.
For this sample:
@interface Foo
@property id x;
@end
we get:
t.m:2:1: error: ARC forbids properties of Objective-C objects with unspecified storage attribute
@property id x;
^
1 error generated.
The error should be imposed on the implementor of the interface, not the user. If the user uses
a header of a non-ARC library whose source code he does not have, we are basically asking him to
go change the header of the library (bad in general), possible overriding how the property is
implemented if he gets confused and says "Oh I'll just add 'copy' then" (even worse).
Second issue is that we don't emit any error for 'readonly' properties, e.g:
@interface Foo
@property (readonly) id x; // no error here
@end
@implementation Foo
@synthesize x; // no error here too
@end
We should give an error when the implementor is @synthesizing a property which doesn't have
any storage specifier; this is when the explicit specifier is important, because we are
going to create an ivar and we want its ownership to be explicit.
Related improvements:
-OBJC_PR_unsafe_unretained turned out to not fit in ObjCPropertyDecl's bitfields, fix it.
-For properties of extension classes don't drop PropertyAttributesAsWritten values.
-Have PropertyAttributesAsWritten actually only reflect what the user wrote
rdar://9756610.
llvm-svn: 134960
|
|
|
|
|
|
|
|
|
|
|
|
| |
structure to hold inferred information, then propagate each invididual
bit down to -cc1. Separate the bits of "supports weak" and "has a native
ARC runtime"; make the latter a CodeGenOption.
The tool chain is still driving this decision, because it's the place that
has the required deployment target information on Darwin, but at least it's
better-factored now.
llvm-svn: 134453
|
|
|
|
|
|
|
|
|
| |
to turn off warning on those properties which follow Cocoa naming
convention for retaining objects and yet they were not meant for
such purposes. Also, perform consistancy checking for declared
getters of such methods. // rdar://9636091
llvm-svn: 133849
|
|
|
|
|
|
| |
is not implemented. // rdar://9651605
llvm-svn: 133819
|
|
|
|
|
|
|
|
| |
'ownership', not 'lifetime'.
rdar://9477613.
llvm-svn: 133779
|
|
|
|
|
|
|
|
|
|
| |
Language-design credit goes to a lot of people, but I particularly want
to single out Blaine Garst and Patrick Beard for their contributions.
Compiler implementation credit goes to Argyrios, Doug, Fariborz, and myself,
in no particular order.
llvm-svn: 133103
|
|
|
|
|
|
| |
properties.
llvm-svn: 132866
|