]> granicus.if.org Git - clang/commitdiff
Revert "[CodeGen] Fix assignments of inline layouts into the byref structure"
authorVedant Kumar <vsk@apple.com>
Mon, 21 Dec 2015 19:43:25 +0000 (19:43 +0000)
committerVedant Kumar <vsk@apple.com>
Mon, 21 Dec 2015 19:43:25 +0000 (19:43 +0000)
This reverts commit r256185. It breaks CodeGenObjC/fragile-arc.m.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@256186 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/CGObjCMac.cpp
lib/CodeGen/CGObjCRuntime.h
test/CodeGenObjCXX/blocks.mm

index 641d1571382cd7c562c2ade3ace774e4d34feb41..c29b435b97801ebf117ca68f7826a66c865f42e7 100644 (file)
@@ -2517,8 +2517,7 @@ llvm::Constant *CGObjCCommonMac::getBitmapBlockLayout(bool ComputeByrefLayout) {
         printf(", BL_WEAK:%d", (int) numWeak);
       printf(", BL_OPERATOR:0\n");
     }
-    return llvm::ConstantExpr::getIntToPtr(
-        llvm::ConstantInt::get(CGM.IntPtrTy, Result), CGM.Int8PtrTy);
+    return llvm::ConstantInt::get(CGM.IntPtrTy, Result);
   }
   
   unsigned char inst = (BLOCK_LAYOUT_OPERATOR << 4) | 0;
index 28d88dd10be90dc0e0a740a5eafece6e924b7643..9b0706770aa906dfa0c5f58f3b6e5d0f5478e904 100644 (file)
@@ -275,11 +275,8 @@ public:
                                   const CodeGen::CGBlockInfo &blockInfo) = 0;
   virtual llvm::Constant *BuildRCBlockLayout(CodeGen::CodeGenModule &CGM,
                                   const CodeGen::CGBlockInfo &blockInfo) = 0;
-
-  /// Returns an i8* which points to the byref layout information.
   virtual llvm::Constant *BuildByrefLayout(CodeGen::CodeGenModule &CGM,
                                            QualType T) = 0;
-
   virtual llvm::GlobalVariable *GetClassGlobal(const std::string &Name,
                                                bool Weak = false) = 0;
 
index 63a1b33f355ad5b3ebabeaf1f7de42eacfa1d715..fd93437ff65262f76d5b09b5e0e2e4a97ff381e1 100644 (file)
@@ -68,18 +68,3 @@ class CaptureThisAndAnotherPointer {
     takeBlock(^{ useValues(ptr, this); });
   }
 };
-
-// rdar://problem/23713871
-// Check that we don't crash when using BLOCK_LAYOUT_STRONG.
-#pragma clang assume_nonnull begin
-@interface NSUUID @end
-#pragma clang assume_nonnull end
-
-struct Wrapper1 { NSUUID *Ref; };
-struct Wrapper2 { Wrapper1 W1; };
-
-@implementation B
-- (void) captureStrongRef {
-  __block Wrapper2 W2;
-}
-@end