| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
underlying llvm::StructType for an interface.
llvm-svn: 69796
|
| |
|
|
| |
llvm-svn: 69793
|
| |
|
|
| |
llvm-svn: 69790
|
| |
|
|
| |
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: 69784
|
| |
|
|
| |
llvm-svn: 69783
|
| |
|
|
| |
llvm-svn: 69775
|
| |
|
|
| |
llvm-svn: 69773
|
| |
|
|
| |
llvm-svn: 69772
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Superclasses are now always laid out their shadow structure at the
first field.
- Prior to this, the entire class heirarchy was flattened into a
single structure which meant that alignment, padding, and bitfields
weren't packed correctly (the ASTRecordLayout was correct however,
which meant our debug info didn't coincide with ivar offsets, for
example).
- This is still very suboptimal, but I believe the ivar layout itself
is now at least close to correct.
- <rdar://problem/6773388> error: objc[29823]: layout bitmap sliding
backwards
llvm-svn: 69771
|
| |
|
|
| |
llvm-svn: 69767
|
| |
|
|
|
|
| |
7 left for 64-bit ABI.
llvm-svn: 69766
|
| |
|
|
| |
llvm-svn: 69765
|
| |
|
|
| |
llvm-svn: 69764
|
| |
|
|
|
|
| |
produces just 14 dead "declares" in llvm ir instead of 19.
llvm-svn: 69763
|
| |
|
|
|
|
| |
rdar://6809612
llvm-svn: 69762
|
| |
|
|
|
|
|
|
|
|
| |
extern. Previously we would warn about it and ignore the attribute.
This is incorrect, it should be handled as a c89 "extern inline"
function. Many thanks to Matthieu Castet for pointing this out and
beating me over the head until I got it.
PR3988: extern inline function are not externally visible
llvm-svn: 69756
|
| |
|
|
| |
llvm-svn: 69747
|
| |
|
|
|
|
|
|
|
| |
@implementation that closes a @class delcaration.
- I don't know how to make a test case for this, but this strengthens
the invariants that hold internally. The functionality change here
is the edit to SemaDeclObjC.cpp.
llvm-svn: 69728
|
| |
|
|
|
|
| |
functions
llvm-svn: 69699
|
| |
|
|
| |
llvm-svn: 69695
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
in cases like this:
typedef struct {
short instance;
char name[0];
} ATTR_LIST_ENTRY2;
void test() {
ATTR_LIST_ENTRY2 X = (ATTR_LIST_ENTRY2) { .instance = 7, };
}
While it is safe to emit them, it is pretty silly.
llvm-svn: 69687
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
tentative definitions off to the ASTConsumer at the end of the
translation unit.
Eliminate CodeGen's internal tracking of tentative definitions, and
instead hook into ASTConsumer::CompleteTentativeDefinition. Also,
tweak the definition-deferal logic for C++, where there are no
tentative definitions.
Fixes <rdar://problem/6808352>, and will make it much easier for
precompiled headers to cope with tentative definitions in the future.
llvm-svn: 69681
|
| |
|
|
| |
llvm-svn: 69668
|
| |
|
|
|
|
|
| |
but crashed codegen. Fix this to report the name of the llvm function.
This fixes rdar://6808051
llvm-svn: 69658
|
| |
|
|
| |
llvm-svn: 69650
|
| |
|
|
|
|
|
|
| |
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: 69629
|
| |
|
|
|
|
|
|
|
|
|
|
| |
GetClassSizeInfo
Reduce nesting in GetInterfaceDeclStructLayout.
Tweak some comments.
No functionality change.
llvm-svn: 69621
|
| |
|
|
|
|
| |
PR4023
llvm-svn: 69618
|
| |
|
|
|
|
| |
- No functionality change.
llvm-svn: 69582
|
| |
|
|
|
|
|
|
| |
@synthesized ivars for superclasses.
- <rdar://problem/6806371> [clang] Mark code without miscompiled
@synthesized properties
llvm-svn: 69581
|
| |
|
|
|
|
|
|
|
| |
Drop uses of GetFirstInvarInRecord, instead we lookup the ivars we
know are in the record.
- This is somewhat less efficient, but I need to detangle this code
first...
llvm-svn: 69579
|
| |
|
|
|
|
| |
Also, added assertion that the field matches what would be looked up.
llvm-svn: 69572
|
| |
|
|
|
|
| |
subsequently crashed).
llvm-svn: 69567
|
| |
|
|
|
|
| |
Adapted from patch by Tim Northover.
llvm-svn: 69566
|
| |
|
|
| |
llvm-svn: 69563
|
| |
|
|
| |
llvm-svn: 69562
|
| |
|
|
|
|
| |
- No functionality change.
llvm-svn: 69561
|
| |
|
|
| |
llvm-svn: 69545
|
| |
|
|
| |
llvm-svn: 69541
|
| |
|
|
|
|
| |
will talk to steve.
llvm-svn: 69519
|
| |
|
|
| |
llvm-svn: 69517
|
| |
|
|
|
|
|
| |
@class but no implementation. This was broken in all 3 runtime
impls.
llvm-svn: 69512
|
| |
|
|
|
|
|
|
| |
- The confusing IRgen bitfield interface is partly to blame here;
fixing the functional error for now, cleanups to the interface to
follow.
llvm-svn: 69503
|
| |
|
|
| |
llvm-svn: 69501
|
| |
|
|
|
|
| |
- No functionality change (but added a FIXME).
llvm-svn: 69496
|