| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
llvm-svn: 111901
|
| |
|
|
| |
llvm-svn: 111733
|
| |
|
|
|
|
|
|
| |
over ivars for a varienty of puposes is now
consolidated into two small routines; DeepCollectObjCIvars
and ShallowCollectObjCIvars.
llvm-svn: 111679
|
| |
|
|
|
|
|
|
|
| |
- move DeclSpec &c into the Sema library
- move ParseAST into the Parse library
Reflect this change in a thousand different includes.
Reflect this change in the link orders.
llvm-svn: 111667
|
| |
|
|
| |
llvm-svn: 111472
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now all classes derived from Attr are generated from TableGen.
Additionally, Attr* is no longer its own linked list; SmallVectors or
Attr* are used. The accompanying LLVM commit contains the updates to
TableGen necessary for this.
Some other notes about newly-generated attribute classes:
- The constructor arguments are a SourceLocation and a Context&,
followed by the attributes arguments in the order that they were
defined in Attr.td
- Every argument in Attr.td has an appropriate accessor named getFoo,
and there are sometimes a few extra ones (such as to get the length
of a variadic argument).
Additionally, specific_attr_iterator has been introduced, which will
iterate over an AttrVec, but only over attributes of a certain type. It
can be accessed through either Decl::specific_attr_begin/end or
the global functions of the same name.
llvm-svn: 111455
|
| |
|
|
|
|
| |
chained PCH to overwrite declarations from earlier PCH files in dependent ones. Tell Sema to note when it changes AST nodes so that they have to be reserialized. Finally, the ObjCProtocolDecls created in forward decls, like the ObjCInterfaceDecls in @class forward decls, are not lexically part of the decl context; only the definition is.
llvm-svn: 110989
|
| |
|
|
| |
llvm-svn: 110945
|
| |
|
|
|
|
|
|
| |
and create separate decl nodes for forward declarations and the
definition," which appears to be causing significant Objective-C
breakage.
llvm-svn: 110803
|
| |
|
|
|
|
| |
(radar 8127244).
llvm-svn: 110622
|
| |
|
|
|
|
|
|
|
|
| |
forward declarations and the definition.
- Eagerly create ObjCInterfaceTypes for declarations.
- The two above changes lead to a 0.5% increase in memory use and no speed regression when parsing Cocoa.h. On the other hand, now chained PCH works when there's a forward declaration in one PCH and the interface definition in another.
- Add HandleInterestingDecl to ASTConsumer. PCHReader passes the "interesting" decls it finds to this function instead of HandleTopLevelDecl. The default implementation forwards to HandleTopLevelDecl, but ASTUnit's handler for example ignores them. This fixes a potential crash when lazy loading of PCH data would cause ASTUnit's "top level" declaration collection to change while being iterated.
llvm-svn: 110610
|
| |
|
|
| |
llvm-svn: 110515
|
| |
|
|
| |
llvm-svn: 110078
|
| |
|
|
|
|
| |
since we aren't going to be calling them ever.
llvm-svn: 109377
|
| |
|
|
|
|
|
| |
warning flag in clang. Little more to do
for a PCH issue. Radar 6507158.
llvm-svn: 109129
|
| |
|
|
|
|
| |
declarations (implements radar 7928731).
llvm-svn: 106597
|
| |
|
|
|
|
| |
This is never null, but the associated type might be.
llvm-svn: 105503
|
| |
|
|
|
|
| |
for variable arguments list methods. (radar 8006060).
llvm-svn: 104407
|
| |
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
| |
(-Wunused-exception-parameter) than normal variables, since it's more
common to name and then ignore an exception parameter. This warning is
neither enabled by default nor by -Wall. Fixes <rdar://problem/7931045>.
llvm-svn: 102931
|
| |
|
|
|
|
| |
ivar of c++ object types.
llvm-svn: 102500
|
| |
|
|
|
|
|
| |
from AST, consider ivar array of objects
(per Doug's comment).
llvm-svn: 102446
|
| |
|
|
|
|
| |
statements. This is the last of the Objective-C statements.
llvm-svn: 102356
|
| |
|
|
|
|
|
|
| |
function-parameter checking and splitting it into the normal
ActOn*/Build* pair in Sema. We now use VarDecl to represent the @catch
parameter rather than the ill-fitting ParmVarDecl.
llvm-svn: 102347
|
| |
|
|
|
|
|
| |
@catch a VarDecl. The dynamic type is still a ParmVarDecl, but that
will change soon. No effective functionality change.
llvm-svn: 102341
|
| |
|
|
|
|
|
|
|
| |
arguments. Rather than having the parser call ActOnParamDeclarator
(which is a bit of a hack), call a new ActOnObjCExceptionDecl
action. We'll be moving more functionality into this handler to
perform earlier checking of @catch.
llvm-svn: 102222
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
not issue a warning).
llvm-svn: 101699
|
| |
|
|
|
|
|
|
|
|
|
| |
intended for redeclarations, fixing those that need it. Fixes PR6831.
This uncovered an issue where the C++ type-specifier-seq parsing logic
would try to perform name lookup on an identifier after it already had
a type-specifier, which could also lead to spurious ambiguity errors
(as in PR6831, but with a different test case).
llvm-svn: 101419
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
generally recover from typos in keywords (since we would effectively
have to mangle the token stream). However, there are still benefits to
typo-correcting with keywords:
- We don't make stupid suggestions when the user typed something
that is similar to a keyword.
- We can suggest the keyword in a diagnostic (did you mean
"static_cast"?), even if we can't recover and therefore don't have
a fix-it.
llvm-svn: 101274
|
| |
|
|
|
|
|
| |
full-fledged @interface, be sure that the declaration has the right
lexical context. <rdar://problem/7827709>
llvm-svn: 100903
|
| |
|
|
|
|
| |
for objc.
llvm-svn: 100865
|
| |
|
|
|
|
| |
of c-style arguments. Completes radar 7445205.
llvm-svn: 100813
|
| |
|
|
|
|
| |
methods. wip.
llvm-svn: 100734
|
| |
|
|
|
|
| |
(radar 7822210).
llvm-svn: 100226
|
| |
|
|
|
|
|
| |
on unimplemented methods in protocols adopted by a class.
(radar 7056600).
llvm-svn: 100028
|
| |
|
|
|
|
| |
the C-only "optimization".
llvm-svn: 100022
|
| |
|
|
| |
llvm-svn: 100018
|
| |
|
|
|
|
|
| |
term "fix-it" everywhere and even *I* get tired of long names
sometimes. No functionality change.
llvm-svn: 100008
|
| |
|
|
|
|
| |
whose protocolls methods needs implementation.
llvm-svn: 99730
|
| |
|
|
|
|
|
|
| |
of objc classes; including which methods
need be implemented and where they come from.
WIP.
llvm-svn: 99724
|
| |
|
|
|
|
| |
implementations (radar 7547942).
llvm-svn: 99198
|
| |
|
|
|
|
| |
a separate file.
llvm-svn: 98317
|
| |
|
|
|
|
|
|
|
|
|
|
| |
the @implementation (instead of the @interface) and actually add
the ivar to the DeclContext (which we weren't doing before).
This allows us to simplify ASTContext::CollectNonClassIvars() by
removing ASTContext::CollectProtocolSynthesizedIvars(). Now all
ivars can be found by either inspecting the ObjCInterfaceDecl and
its companion ObjCImplementationDecl.
llvm-svn: 98280
|
| |
|
|
|
|
|
|
|
|
| |
Objective-C method declaration, e.g., for
- (Foo *)myMethod;
we now have TypeSourceInfo for the Foo*.
llvm-svn: 97942
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
which has the label map, switch statement stack, etc. Previously, we
had a single set of maps in Sema (for the function) along with a stack
of block scopes. However, this lead to funky behavior with nested
functions, e.g., in the member functions of local classes.
The explicit-stack approach is far cleaner, and we retain a 1-element
cache so that we're not malloc/free'ing every time we enter a
function. Fixes PR6382.
Also, tweaked the unused-variable warning suppression logic to look at
errors within a given Scope rather than within a given function. The
prior code wasn't looking at the right number-of-errors count when
dealing with blocks, since the block's count would be deallocated
before we got to ActOnPopScope. This approach works with nested
blocks/functions, and gives tighter error recovery.
llvm-svn: 97518
|