| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
of '@'.
llvm-svn: 143084
|
|
|
|
| |
llvm-svn: 142711
|
|
|
|
|
|
|
| |
None private methods if their implementation have attribute, they must exactly
match those in their declarations. // rdar://10271563
llvm-svn: 142709
|
|
|
|
|
|
|
|
|
|
| |
top-level declarations that occurred inside an ObjC container.
This is useful to keep track of such decls otherwise when e.g. a function
is declared inside an objc interface, it is not passed to HandleTopLevelDecl
and it is not inside the DeclContext of the interface that is returned.
llvm-svn: 142232
|
|
|
|
|
|
| |
reference.
llvm-svn: 142230
|
|
|
|
|
|
| |
Serialization part will come later.
llvm-svn: 141950
|
|
|
|
|
|
| |
Avoid possible infinite loop when iterating over an ObjCMethod's redeclarations.
llvm-svn: 141946
|
|
|
|
|
|
|
|
|
|
|
| |
- Remodel Expr::EvaluateAsInt to behave like the other EvaluateAs* functions,
and add Expr::EvaluateKnownConstInt to capture the current fold-or-assert
behaviour.
- Factor out evaluation of bitfield bit widths.
- Fix a few places which would evaluate an expression twice: once to determine
whether it is a constant expression, then again to get the value.
llvm-svn: 141561
|
|
|
|
|
|
| |
for future work.
llvm-svn: 141553
|
|
|
|
|
|
|
|
| |
unavailable;
only give an 'unavailable' error on the @implementation of the category. rdar://10234078
llvm-svn: 141335
|
|
|
|
|
|
|
|
| |
interface/implementation
don't emit unavailable errors.
llvm-svn: 141334
|
|
|
|
| |
llvm-svn: 141201
|
|
|
|
|
|
|
|
| |
-Add the location of the class name to all objc container decls, not just ObjCInterfaceDecl.
-Make objc decls consistent with the rest of the NamedDecls and have getLocation() point to the
class name, not the location of '@'.
llvm-svn: 141061
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
dealloc] when in GC-only mode, and to not warning about missing [super finalize] when not using GC.
llvm-svn: 140713
|
|
|
|
|
|
|
|
| |
attribute must match its overriden method. Same also for
ns_returns_retained/not_retained on the result type.
This is one half of // rdar://10187884
llvm-svn: 140649
|
|
|
|
| |
llvm-svn: 140478
|
|
|
|
| |
llvm-svn: 140367
|
|
|
|
|
|
|
|
| |
than conversions of C pointers to ObjC pointers. In order to ensure that
we've caught every case, add asserts to CastExpr that strictly determine
which cast kind is used for which kind of bit cast.
llvm-svn: 139352
|
|
|
|
|
|
|
|
|
|
| |
'id' that can be used (only!) via a contextual keyword as the result
type of an Objective-C message send. 'instancetype' then gives the
method a related result type, which we have already been inferring for
a variety of methods (new, alloc, init, self, retain). Addresses
<rdar://problem/9267640>.
llvm-svn: 139275
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
and does the Sema on their body after the entire
class/category @implementation is seen. This change allows messaging
of forward private methods, as well as, access to
synthesized ivars of properties with foward synthesize
declarations; among others. In effect, this patch removes
several restrictions placed on objective-c due to in-place
semantics processing of methods.
This is part of // rdar://8843851.
llvm-svn: 138865
|
|
|
|
|
|
|
|
|
|
|
| |
Remove
-setClassInterface
-setNextClassCategory
-insertNextClassCategory
and combine them in the Create function.
llvm-svn: 138817
|
|
|
|
| |
llvm-svn: 138815
|
|
|
|
| |
llvm-svn: 138776
|
|
|
|
|
|
| |
No change in functionality.
llvm-svn: 138742
|
|
|
|
|
|
| |
This matches gcc's logic. Second half of PR10661.
llvm-svn: 138730
|
|
|
|
|
|
|
|
|
|
| |
, such as list of forward @class decls, in a DeclGroup
node. Deal with its consequence throught clang. This
is in preparation for more Sema work ahead. // rdar://8843851.
Feel free to reverse if it breaks something important
and I am unavailable.
llvm-svn: 138709
|
|
|
|
|
|
|
| |
declated method in the class belongs to a synthesized
property getter/setter. // rdar://10014946
llvm-svn: 138598
|
|
|
|
|
|
| |
changes. // rdar://10015110
llvm-svn: 138594
|
|
|
|
| |
llvm-svn: 138584
|
|
|
|
| |
llvm-svn: 138571
|
|
|
|
|
|
| |
as in @class foo, bar. More cleanup to follow.
llvm-svn: 138567
|
|
|
|
|
|
| |
-dealloc is illegal in that mode.
llvm-svn: 138261
|
|
|
|
| |
llvm-svn: 138253
|
|
|
|
|
|
| |
This matches gcc's logic. Half of PR10661.
llvm-svn: 138240
|
|
|
|
|
|
| |
failures are resolved.
llvm-svn: 138234
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
overridden methods to diagnose their type mismatch.
This is a general solution for previous fixes
for // rdar://6191214 and // rdar://9352731
and removes lots of duplicate code.
llvm-svn: 137222
|
|
|
|
|
|
|
|
|
| |
situation. When a class explicitly or implicitly (through inheritance)
"conformsTo" two protocols which conflict (have methods which conflict).
This patch fixes the previous patch where warnings were coming out in
non-deterministic order. This is 2nd part of // rdar://6191214.
llvm-svn: 137055
|
|
|
|
|
|
|
|
| |
implementations of +load do not replace the class definition in a meaningful
sense, they are run when the category loads, the +load method for class is run
when the class is loaded.
llvm-svn: 137053
|
|
|
|
| |
llvm-svn: 136998
|
|
|
|
|
|
|
|
| |
situation. When a class explicitly or implicitly (through inheritance)
"conformsTo" two protocols which conflict (have methods which conflict).
This is 2nd part of // rdar://6191214.
llvm-svn: 136927
|
|
|
|
| |
llvm-svn: 136841
|
|
|
|
|
|
| |
those declated in its protocols. First half or // rdar://6191214
llvm-svn: 136794
|
|
|
|
|
|
|
|
|
|
| |
masks an existing method in its primary class, class extensions,
and primary class's non-optional protocol methods; as primary
class, or one of its subclass's will implement this method.
This warning has potential of being noisy so it has its own
group. // rdar://7020493
llvm-svn: 136426
|