| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
-fobjc-default-synthesize-properties flag.
llvm-svn: 122757
|
|
|
|
|
|
|
| |
implicitly atomic under -Wimplicit-atomic-properties
flag. // rdar://8774580
llvm-svn: 122095
|
|
|
|
|
|
|
| |
created for auto-synthesis are @private.
Fixes: // rdar://8769582
llvm-svn: 121913
|
|
|
|
|
|
|
|
|
|
|
| |
declared setter or getter in current class extension or one
of the other class extensions. Mark them as synthesized as
property will be synthesized when property with same name is
seen in the @implementation. This prevents bogus warning
about unimplemented methods to be issued for these methods.
Fixes // rdar://8747333
llvm-svn: 121597
|
|
|
|
|
|
| |
reason this is limited to C++, and it's certainly not limited to temporaries.
llvm-svn: 120996
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
store it on the expression node. Also store an "object kind",
which distinguishes ordinary "addressed" l-values (like
variable references and pointer dereferences) and bitfield,
@property, and vector-component l-values.
Currently we're not using these for much, but I aim to switch
pretty much everything calculating l-valueness over to them.
For now they shouldn't necessarily be trusted.
llvm-svn: 119685
|
|
|
|
|
|
|
|
|
| |
@synthesize foo = _foo;
keep track of the location of the ivar ("_foo"). Teach libclang to
visit the ivar as a member reference.
llvm-svn: 119447
|
|
|
|
| |
llvm-svn: 119326
|
|
|
|
| |
llvm-svn: 119138
|
|
|
|
|
|
| |
other class extensions. // rdar://7629420
llvm-svn: 118689
|
|
|
|
|
|
|
|
|
|
| |
@property declaration to the autogenerated methods. I'm uncertain
whether this should apply to attributes in general, but these are
a reasonable core.
Implements rdar://problem/8617301
llvm-svn: 118676
|
|
|
|
|
|
|
|
|
|
| |
where the redelcaration and original
declaration have the 'readwrite' attribute. This is a common case, and we can issue a more lucid diagnostic.
Fixes <rdar://problem/7629420>.
llvm-svn: 117045
|
|
|
|
|
|
|
|
|
| |
find a copy constructor/assignment operator used
in getter/setter synthesis. This removes an unintended
diagnostics and makes objc++ consistant with objective-c.
// rdar: //8550657.
llvm-svn: 116631
|
|
|
|
| |
llvm-svn: 116519
|
|
|
|
|
|
|
|
|
| |
the location of the @implementation
is just confusing for clients that want to use SourceLocations for syntactic references.
Fixes: <rdar://problem/8470540>
llvm-svn: 114714
|
|
|
|
|
|
|
|
|
| |
use the class extension
as the lexical DeclContext for the @property declaration that gets auto-created for the @interface.
Fixes: <rdar://problem/8467189>
llvm-svn: 114693
|
|
|
|
|
|
|
|
|
|
|
|
| |
methods declared with @property in class extensions.
This matches the behavior for setters.
Also pass the class extension to ProcessPropertyDecl as the lexical DeclContext, even when not redeclaring the @property.
This fixes the remaining issues in <rdar://problem/7410145>.
llvm-svn: 114477
|
|
|
|
|
|
|
|
|
|
|
| |
lexical DeclContext for newly created
ObjCMethodDecls. Further, use the location of the new property declaration as the location of new ObjCMethodDecls
(if they didn't previously exist).
This fixes more of the issues reported in <rdar://problem/7410145>.
llvm-svn: 114456
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ReferencedProtocols and AllReferencedProtocols. ReferencedProtocols
(and thus protocol_begin(), protocol_end()) now only contains the list of protocols that were directly referenced in
an @interface declaration. 'all_referenced_protocol_[begin,end]()' now returns the set of protocols that were referenced
in both the @interface and class extensions. The latter is needed for semantic analysis/codegen, while the former is
needed to maintain the lexical information of the original source.
Fixes <rdar://problem/8380046>.
llvm-svn: 112691
|
|
|
|
|
|
| |
This lets us remove Sema.h's dependency on Expr.h and Decl.h.
llvm-svn: 112156
|
|
|
|
|
|
|
| |
Clients of Sema don't need to know (for example) the list of diagnostics we
support.
llvm-svn: 112093
|
|
|
|
|
|
| |
to the new constants.
llvm-svn: 112047
|
|
|
|
| |
llvm-svn: 112030
|
|
|
|
|
|
|
| |
has its own getter and setter methods declared.
Fixed 8349319 (nonfragile-abi2).
llvm-svn: 112003
|
|
|
|
|
|
|
|
| |
previous use of a synthesized 'ivar' with property of same name
declared as @dynamic. In this case, 'ivar' is in the
inherited class and no diagnostics should be issued.
llvm-svn: 111940
|
|
|
|
| |
llvm-svn: 111904
|
|
|
|
|
|
|
| |
M-x query-replace-regexp
\(Sema::\|Action::\|Parser::\|\)Owning\(Expr\|Stmt\)Result -> \2Result
llvm-svn: 111903
|
|
|
|
| |
llvm-svn: 111733
|
|
|
|
| |
llvm-svn: 111314
|
|
|
|
| |
llvm-svn: 110945
|
|
|
|
|
|
|
| |
warning flag in clang. Little more to do
for a PCH issue. Radar 6507158.
llvm-svn: 109129
|
|
|
|
|
|
|
| |
part of the new property synthesis by default.
wip.
llvm-svn: 108599
|
|
|
|
|
|
| |
and some are already synthesized by user declaration.
llvm-svn: 108341
|
|
|
|
|
|
| |
in class extensions (radar 8171968).
llvm-svn: 108283
|
|
|
|
|
|
|
|
|
| |
unimplemented property warning for properties
coming from class's conformin protocol. It also
simplifies the algorithm in the process.
Fixes radar 8035776.
llvm-svn: 107174
|
|
|
|
|
|
| |
declarations (implements radar 7928731).
llvm-svn: 106597
|
|
|
|
|
|
| |
This is never null, but the associated type might be.
llvm-svn: 105503
|
|
|
|
| |
llvm-svn: 105484
|
|
|
|
|
|
|
| |
gc attributes to be inline with Objective-C
(for radar 7925141).
llvm-svn: 104084
|
|
|
|
|
|
|
|
|
|
| |
of a current
design limitation in how we handle Objective-C class extensions. This was causing the CursorVisitor
to essentially visit an @property twice (once in the @interface, the other in the class extension).
Fixes <rdar://problem/7410145>.
llvm-svn: 104055
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
| |
"return" statement and mark the corresponding CXXConstructExpr as
elidable. Teach CodeGen that eliding a temporary is different from
eliding an object construction.
This is just a baby step toward NRVO.
llvm-svn: 103849
|
|
|
|
|
|
|
|
|
| |
user directive is needed to force a property implementation.
It is decided based on those propeties which are declared in
the class (or in its protocols) but not those which must be
default implemented by one of its super classes. Implements radar 7923851.
llvm-svn: 103787
|
|
|
|
|
|
|
| |
of properties which are of C++ objects. Code Gen to follow
(Radar 7468090).
llvm-svn: 103123
|
|
|
|
|
|
|
|
| |
conforms to a protocol as one of its super classes does. This is because
conforming super class will implement the property. This implements
new warning rules for unimplemented properties (radar 7884086).
llvm-svn: 102919
|
|
|
|
|
|
|
| |
categories. Issue usual warnings instead of
confusing error message. Radar 7920807
llvm-svn: 102645
|
|
|
|
|
|
| |
property synthesis is using a super class ivar.
llvm-svn: 102011
|
|
|
|
|
|
|
|
| |
function declaration, since it may end up being changed (e.g.,
"extern" can become "static" if a prior declaration was static). Patch
by Enea Zaffanella and Paolo Bolzoni.
llvm-svn: 101826
|
|
|
|
|
|
|
|
| |
in case it ends up doing something that might trigger diagnostics
(template instantiation, ambiguity reporting, access
reporting). Noticed while working on PR6831.
llvm-svn: 101412
|
|
|
|
|
|
| |
for objc.
llvm-svn: 100865
|