[cfe-commits] r62703 - /cfe/trunk/lib/CodeGen/CGObjCGNU.cpp
Chris Lattner
sabre at nondot.org
Wed Jan 21 10:52:19 PST 2009
Author: lattner
Date: Wed Jan 21 12:52:19 2009
New Revision: 62703
URL: http://llvm.org/viewvc/llvm-project?rev=62703&view=rev
Log:
Fix objc type conversion issues with the GNU runtime, patch by
David Chisnall
Modified:
cfe/trunk/lib/CodeGen/CGObjCGNU.cpp
Modified: cfe/trunk/lib/CodeGen/CGObjCGNU.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGObjCGNU.cpp?rev=62703&r1=62702&r2=62703&view=diff
==============================================================================
--- cfe/trunk/lib/CodeGen/CGObjCGNU.cpp (original)
+++ cfe/trunk/lib/CodeGen/CGObjCGNU.cpp Wed Jan 21 12:52:19 2009
@@ -40,8 +40,8 @@
private:
CodeGen::CodeGenModule &CGM;
llvm::Module &TheModule;
- const llvm::StructType *SelStructTy;
- const llvm::Type *SelectorTy;
+ const llvm::PointerType *SelectorTy;
+ const llvm::Type *ExpectedSelTy;
const llvm::Type *PtrToInt8Ty;
const llvm::Type *IMPTy;
const llvm::Type *IdTy;
@@ -168,11 +168,12 @@
PtrToInt8Ty =
llvm::PointerType::getUnqual(llvm::Type::Int8Ty);
// Get the selector Type.
- SelStructTy = llvm::StructType::get(
- PtrToInt8Ty,
- PtrToInt8Ty,
- NULL);
- SelectorTy = llvm::PointerType::getUnqual(SelStructTy);
+ SelectorTy = cast<llvm::PointerType>(
+ CGM.getTypes().ConvertType(CGM.getContext().getObjCSelType()));
+
+ ExpectedSelTy =
+ CGM.getTypes().ConvertType(CGM.getContext().getObjCSelType());
+
PtrToIntTy = llvm::PointerType::getUnqual(IntTy);
PtrTy = PtrToInt8Ty;
@@ -797,6 +798,9 @@
UntypedSelectors.empty())
return NULL;
+ const llvm::StructType *SelStructTy =
+ cast<llvm::StructType>(SelectorTy->getTypeAtIndex(0U));
+
// Name the ObjC types to make the IR a bit easier to read
TheModule.addTypeName(".objc_selector", SelectorTy);
TheModule.addTypeName(".objc_id", IdTy);
More information about the cfe-commits
mailing list