]> granicus.if.org Git - clang/commit
Rework the shadow struct that is layed out for Objective-C classes.
authorDaniel Dunbar <daniel@zuster.org>
Wed, 22 Apr 2009 03:45:12 +0000 (03:45 +0000)
committerDaniel Dunbar <daniel@zuster.org>
Wed, 22 Apr 2009 03:45:12 +0000 (03:45 +0000)
commit0c45793173ebdf15ba7345a1f71919c47abbeed0
tree7a266c9216d7cbf61c0ca3923c5922d18af4580c
parent3936024941229e235aed7f53949a117a54eebf68
Rework the shadow struct that is layed out for Objective-C classes.

 - 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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69771 91177308-0d34-0410-b5e6-96231b3b80d8
lib/AST/ASTContext.cpp
lib/AST/DeclObjC.cpp
lib/CodeGen/CGObjCMac.cpp
test/CodeGenObjC/ivar-layout-64.m [new file with mode: 0644]