| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
errors when you reference a class before defining it (GNU runtime).
Patch by David Chisnall.
llvm-svn: 74772
|
| |
|
|
| |
llvm-svn: 74585
|
| |
|
|
|
|
|
| |
Remove ASTContext parameter from DeclContext's methods. This change cascaded down to other Decl's methods and changes to call sites started "escalating".
Timings using pre-tokenized "cocoa.h" showed only a ~1% increase in time run between and after this commit.
llvm-svn: 74506
|
| |
|
|
|
|
|
|
|
| |
variables in ObjC's Next runtime mode. Next runtime also implicitly applies
'used' attribute on some of its meta-data. This results in two
'llvm.used' arrays to be generated, and one of them is renamed to
'llvm.used1'.
llvm-svn: 74008
|
| |
|
|
|
|
|
|
| |
corresponding reference to this symbol for every compilation unit that references the class. This causes linker errors when you try linking a program which references some classes but doesn't define them. The attached patch implements this support in clang, so you can compile a class with clang, reference it in a file compiled with GCC, and have it all work correctly."
Patch by David Chisnall!
llvm-svn: 73364
|
| |
|
|
| |
llvm-svn: 72827
|
| |
|
|
|
|
|
|
|
|
| |
runtime, when
compiled with -fobjc-sender-dependent-dispatch. This is used in AOP, COP, implementing object
planes, and a few other things.
Patch by David Chisnall.
llvm-svn: 72275
|
| |
|
|
|
|
|
|
|
|
|
|
| |
on the GNU runtime.
It currently requires a patches to GNU libobjc (and so is not enabled by default) which are currently
being tested and reviewed by GNUstep before being pushed upstream.
This patch does not allow support for synthesized ivars, but does provide the infrastructure
needed for supporting them.
Patch by David Chisnall
llvm-svn: 72175
|
| |
|
|
|
|
|
|
| |
runtime. As with @synchronized, this requires some extra functions that are included with other libraries (not with the GNU runtime itself) and so will cause linker errors when these are not present.
Patch by David Chisnall.
llvm-svn: 72079
|
| |
|
|
|
|
|
|
| |
One is a case in rethrowing exceptions where the C types don't match correctly (I already sent this patch to Daniel Dunbar, who found the bug, so it may have already been committed). The other fixes the case properties so that the methods generated as property accessors are added to the class structure correctly.
Patch by David Chisnall.
llvm-svn: 71980
|
| |
|
|
| |
llvm-svn: 71451
|
| |
|
|
| |
llvm-svn: 71227
|
| |
|
|
|
|
|
|
| |
This used to work, but I broke it when I modified the code to emit the same thing as GCC for message sends to super in classes."
Patch by David Chisnall!
llvm-svn: 71220
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
"This patch is a first pass at adding support for exceptions for the GNU runtime. There are a few limitations at present:
- @synchronized() is not yet supported at all. gcc currently emits calls to runtime library functions that don't exist for this directive.
- Only id @catch statements are currently working. This is enough for NS_DURING and friends, but I need to spend more time reading the output from gcc -S to work out how it finds the class pointer to make arbitrary class type catch statements work.
- I've tested it with a few common cases[1] and the clang test suite (which doesn't test exceptions for the GNU runtime, but shows I haven't broken anything else), but there are probably a lot of cases I've missed."
Patch by David Chisnall!
llvm-svn: 71198
|
| |
|
|
|
|
| |
Patch by David Chisnall.
llvm-svn: 71023
|
| |
|
|
|
|
|
|
| |
now be faster, and works in the presence of class posing. This is now the same approach as used in GCC (the earlier code was a quick hack to get something working)."
Patch by David Chisnall!
llvm-svn: 70877
|
| |
|
|
|
|
|
|
|
| |
The attached diff fixes the //FIXME in message send to super. This
should now be faster, and works in the presence of class posing. This
is now the same approach as used in GCC (the earlier code was a quick
hack to get something working).
llvm-svn: 70868
|
| |
|
|
|
|
| |
not the shadow structure.
llvm-svn: 70691
|
| |
|
|
| |
llvm-svn: 70683
|
| |
|
|
| |
llvm-svn: 70105
|
| |
|
|
|
|
|
|
| |
and passes the test in the test suite. It also fixes a crash when using recent versions of GNU libobjc and compiling modules that do not contain any constant strings but do contain a declaration of the constant string class and possible some other corner cases (thanks to Pete French for providing me with a test case for that one)."
Patch by David Chisnall!
llvm-svn: 70093
|
| |
|
|
|
|
|
|
|
|
|
| |
methods, class methods, and property implementations) and instead
place all of these entities into the DeclContext.
This eliminates more linear walks when looking for class or instance
methods and should make PCH (de-)serialization of ObjCDecls trivial
(and lazy).
llvm-svn: 69849
|
| |
|
|
|
|
| |
underlying llvm::StructType for an interface.
llvm-svn: 69796
|
| |
|
|
| |
llvm-svn: 69789
|
| |
|
|
|
|
|
|
|
| |
- For now, this means we are always doing the address computations by
hand instead of constructing a proper GEP. Right now, however, this
is less important than having fewer entry points to dealing with
Objective-C interface layout.
llvm-svn: 69787
|
| |
|
|
| |
llvm-svn: 69775
|
| |
|
|
|
|
|
|
| |
when we need them -- which is exactly what some code was already
doing!
- No intended functionality change.
llvm-svn: 69648
|
| |
|
|
| |
llvm-svn: 69641
|
| |
|
|
|
|
|
| |
w.r.t. ASTContext::[gs]etFieldDecl, and the Field argument to
EmitObjCValueForIvar).
llvm-svn: 69639
|
| |
|
|
| |
llvm-svn: 69563
|
| |
|
|
|
|
|
| |
@class but no implementation. This was broken in all 3 runtime
impls.
llvm-svn: 69512
|
| |
|
|
| |
llvm-svn: 69501
|
| |
|
|
|
|
|
|
| |
runtime (currently an instance method lookup is being performed)."
Patch by David Chisnall!
llvm-svn: 69493
|
| |
|
|
|
|
| |
No functionality change (really).
llvm-svn: 68726
|
| |
|
|
|
|
|
| |
runtime on 64-bit architectures.
Patch by David Chisnall
llvm-svn: 68238
|
| |
|
|
| |
llvm-svn: 68174
|
| |
|
|
|
|
| |
Patch by David Chisnal.
llvm-svn: 68125
|
| |
|
|
|
|
|
|
| |
functionality change.
Changed GenerateConstantString() to take an ObjCStringLiteral (instead of a std::string). While this isn't strictly necessary, it seems cleaner and allows us to cache to "containsNonAscii" if necessary (to avoid checking in both Sema and CodeGen).
llvm-svn: 68114
|
| |
|
|
|
|
| |
Patch by David Chisnall.
llvm-svn: 68043
|
| |
|
|
|
|
|
| |
message to 'super' in a class method declared in
cateogy (darwin specific).
llvm-svn: 65709
|
| |
|
|
|
|
| |
in preparation for nonfragile ivar offset work.
llvm-svn: 64225
|
| |
|
|
|
|
| |
Patch by David Chisnall
llvm-svn: 63769
|
| |
|
|
|
|
| |
Patch by David Chisnall.
llvm-svn: 63666
|
| |
|
|
| |
llvm-svn: 63644
|
| |
|
|
| |
llvm-svn: 63578
|
| |
|
|
|
|
| |
- Inefficient & leaks memory currently, will be cleaned up subsequently.
llvm-svn: 63567
|
| |
|
|
|
|
|
| |
- Lift CGFunctionInfo creation above ReturnTypeUsesSret and
EmitFunction{Epi,Pro}log.
llvm-svn: 63553
|
| |
|
|
|
|
|
|
|
|
|
| |
- Lift CGFunctionInfo creation up to callers of EmitCall.
- Move isVariadic bit out of CGFunctionInfo, take as argument to
GetFunctionType instead.
No functionality change.
llvm-svn: 63550
|
| |
|
|
|
|
| |
objc2 nonfragile ivar access code gen.
llvm-svn: 63541
|
| |
|
|
| |
llvm-svn: 63092
|