| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
of class in objc2's nonfragile abi.
llvm-svn: 62935
|
| |
|
|
|
|
| |
implemented class in objc2's nonfrigile abi.
llvm-svn: 62929
|
| |
|
|
|
|
| |
meta-data generation.
llvm-svn: 62894
|
| |
|
|
| |
llvm-svn: 62853
|
| |
|
|
| |
llvm-svn: 62852
|
| |
|
|
| |
llvm-svn: 62830
|
| |
|
|
|
|
| |
for the new meta-data.
llvm-svn: 62806
|
| |
|
|
|
|
| |
the two Next's objc runtimes. More comments.
llvm-svn: 62735
|
| |
|
|
|
|
| |
No change in functionality.
llvm-svn: 62729
|
| |
|
|
|
|
| |
the new ObjC's abi.
llvm-svn: 62721
|
| |
|
|
|
|
| |
No change in functionality.
llvm-svn: 62646
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
that every declaration lives inside a DeclContext.
Moved several things that don't have names but were ScopedDecls (and,
therefore, NamedDecls) to inherit from Decl rather than NamedDecl,
including ObjCImplementationDecl and LinkageSpecDecl. Now, we don't
store empty DeclarationNames for these things, nor do we try to insert
them into DeclContext's lookup structure.
The serialization tests are temporarily disabled. We'll re-enable them
once we've sorted out the remaining ownership/serialiazation issues
between DeclContexts and TranslationUnion, DeclGroups, etc.
llvm-svn: 62562
|
| |
|
|
|
|
| |
cases of unnamed ivar bitfields.
llvm-svn: 62429
|
| |
|
|
| |
llvm-svn: 62122
|
| |
|
|
| |
llvm-svn: 62101
|
| |
|
|
|
|
| |
This completes the ObjCContainerDecl AST cleanup (for now).
llvm-svn: 62037
|
| |
|
|
|
|
|
|
| |
not merging protocol properties into the classes which
use those protocols. With this patch, all my exceutable
test pass again.
llvm-svn: 62030
|
| |
|
|
|
|
|
|
|
| |
filters the decls seen by decl_iterator with two criteria: the dynamic
type of the declaration and a run-time predicate described by a member
function. This simplifies EnumDecl, RecordDecl, and ObjCContainerDecl
considerably. It has no measurable performance impact.
llvm-svn: 61994
|
| |
|
|
|
|
|
|
|
| |
Add isa/cast/dyncast support for ObjCContainerDecl.
Renamed classprop_iterator/begin/end to prop_iterator/begin/end (the class prefix was confusing).
More simplifications to Sema::ActOnAtEnd()...
Added/changed some FIXME's as a result of the above work.
llvm-svn: 61988
|
| |
|
|
|
|
|
| |
method on 'super' receiver in a category implementation.
Other simpler cases were working by accident.
llvm-svn: 61880
|
| |
|
|
|
|
| |
@encode of classes and bitfields.
llvm-svn: 61268
|
| |
|
|
|
|
| |
ivars.
llvm-svn: 61043
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
and separates lexical name lookup from qualified name lookup. In
particular:
* Make DeclContext the central data structure for storing and
looking up declarations within existing declarations, e.g., members
of structs/unions/classes, enumerators in C++0x enums, members of
C++ namespaces, and (later) members of Objective-C
interfaces/implementations. DeclContext uses a lazily-constructed
data structure optimized for fast lookup (array for small contexts,
hash table for larger contexts).
* Implement C++ qualified name lookup in terms of lookup into
DeclContext.
* Implement C++ unqualified name lookup in terms of
qualified+unqualified name lookup (since unqualified lookup is not
purely lexical in C++!)
* Limit the use of the chains of declarations stored in
IdentifierInfo to those names declared lexically.
* Eliminate CXXFieldDecl, collapsing its behavior into
FieldDecl. (FieldDecl is now a ScopedDecl).
* Make RecordDecl into a DeclContext and eliminates its
Members/NumMembers fields (since one can just iterate through the
DeclContext to get the fields).
llvm-svn: 60878
|
| |
|
|
| |
llvm-svn: 60827
|
| |
|
|
|
|
|
|
|
|
|
| |
uses of getName() with uses of getDeclName(). This upgrades a bunch of
diags to take DeclNames instead of std::strings.
This also tweaks a couple of diagnostics to be cleaner and changes
CheckInitializerTypes/PerformInitializationByConstructor to pass
around DeclarationNames instead of std::strings.
llvm-svn: 59947
|
| |
|
|
|
|
|
|
|
| |
assert if the name is not an identifier. Update callers to do the right
thing and avoid this method in unsafe cases. This also fixes an objc
warning that was missing a space, and migrates a couple more to taking
IdentifierInfo and QualTypes instead of std::strings.
llvm-svn: 59936
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
a new NamedDecl::getAsString() method.
Change uses of Selector::getName() to just pass in a Selector
where possible (e.g. to diagnostics) instead of going through
an std::string.
This also adds new formatters for objcinstance and objcclass
as described in the dox.
llvm-svn: 59933
|
| |
|
|
| |
llvm-svn: 59838
|
| |
|
|
|
|
| |
code gen. method.
llvm-svn: 59767
|
| |
|
|
| |
llvm-svn: 59740
|
| |
|
|
| |
llvm-svn: 59645
|
| |
|
|
|
|
| |
Also, took care of Daniel's commments.
llvm-svn: 59575
|
| |
|
|
|
|
| |
__weak objects.
llvm-svn: 59560
|
| |
|
|
| |
llvm-svn: 59553
|
| |
|
|
| |
llvm-svn: 59543
|
| |
|
|
|
|
|
|
| |
representing the names of declarations in the C family of
languages. DeclarationName is used in NamedDecl to store the name of
the declaration (naturally), and ObjCMethodDecl is now a NamedDecl.
llvm-svn: 59441
|
| |
|
|
|
|
| |
Patch by Fariborz!
llvm-svn: 59377
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- EmitStmt is no longer required to finish with a current insertion
point defined (i.e. it does not need to make dummy
blocks). Instead, it can clear the insertion point in the builder
which indicates that the current insertion point is unreachable.
- CodeGenFunction provides HaveInsertPoint and EnsureInsertPoint
which respectively test if there is an insert point and ensure an
insertion point exists (by making a dummy block).
- Clearly mark functions in CodeGenFunction which can be called with
no insertion point defined. Currently this is a limited set, and
EmitStmt simply EnsureInsertPoint()s before emitting subsequent IR.
Remove EmitDummyBlock, which is no longer needed. Clients who haven't
already cleared the insertion point (typically via EmitBranch) can do
so by hand.
Remove isDummyBlock, which has effectively been renamed to
HaveInsertPoint.
The main thrust of this change is that we no longer have create dummy
blocks just to destroy them a short time later in EmitBlock in the
common case that there is no unreachable code following something like
a goto.
Additionally, this means that we are not using the hokey condition in
isDummyBlock that a block without a name is a dummy block. Guess how
well that works when we never emit block names!
llvm-svn: 59089
|
| |
|
|
|
|
|
| |
- Emits an unconditional branch, with extra logic to avoid generating
spurious branches out of dummy blocks.
llvm-svn: 59037
|
| |
|
|
|
|
|
| |
"dummy" blocks (blocks just used to make sure we have a place to dump
code to).
llvm-svn: 59022
|
| |
|
|
|
|
| |
- No functionality change.
llvm-svn: 59017
|
| |
|
|
|
|
| |
- No functionality change.
llvm-svn: 58546
|
| |
|
|
|
|
|
|
|
|
| |
- That is, the metadata for a protocol is only emitted if that
protocol is actually used in the translation unit. This is
important because Objective-C headers frequently contain a large
number of protocol definitions, only a few of which will be used in
any given file.
llvm-svn: 58400
|
| |
|
|
| |
llvm-svn: 57716
|
| |
|
|
|
|
|
| |
- Encode unions and bit-fields correctly.
- Accept option to name record fields (used for NeXT runtime).
llvm-svn: 57685
|
| |
|
|
|
|
| |
floating point. This is only correct for x86-32 at the moment.
llvm-svn: 57667
|
| |
|
|
|
|
| |
processing the Decl of a @catch statement.
llvm-svn: 57208
|
| |
|
|
| |
llvm-svn: 56954
|
| |
|
|
| |
llvm-svn: 56902
|
| |
|
|
|
|
|
|
|
|
|
|
| |
- Provides a basic primitive to jump to an arbitrary basic block,
through the finally code.
- Only used for return statements and rethrow currently. Still need
to handle break, continue and goto.
- Code still needs to be shuffled around to live elsewhere.
llvm-svn: 56827
|