| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
typo-correct to ourselves.
llvm-svn: 145583
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
file region
inside an objc container that "contains" other file-level declarations.
When getting the array of file-level declarations that overlap with a file region,
we failed to report that the region overlaps with an objc container, if
the container had other file-level declarations declared lexically inside it.
Fix this by marking such declarations as "isTopLevelDeclInObjCContainer" in the AST
and handling them appropriately.
llvm-svn: 145109
|
| |
|
|
| |
llvm-svn: 145107
|
| |
|
|
|
|
|
|
|
|
| |
Objective-C classes. This has two purposes: to consistently provide
"forward declaration here" notes when we hit an incomplete type, and
to give LLDB a chance to complete the type.
RequireCompleteType bits from Sean Callanan!
llvm-svn: 144573
|
| |
|
|
| |
llvm-svn: 144508
|
| |
|
|
|
|
|
|
| |
[is/set]ChangedSinceDeserialization
and remove them.
llvm-svn: 144466
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
of its categories because
it is going to be rewritten (and the chain will be serialized again), otherwise we may form a cycle in its
categories list when deserializing.
Also introduce ASTMutationListener::CompletedObjCForwardRef to notify that a forward reference
was completed; using Decl's isChangedSinceDeserialization/setChangedSinceDeserialization
is bug inducing and kinda gross, we should phase it out.
Fixes infinite loop in rdar://10418538.
llvm-svn: 144465
|
| |
|
|
|
|
| |
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
|