various bug fixes, add to xcode project.

llvm-svn: 49216
This commit is contained in:
Chris Lattner 2008-04-04 15:47:22 +00:00
parent 6175bbbee2
commit 15c6b7c948
2 changed files with 10 additions and 16 deletions

View File

@ -129,6 +129,7 @@
DEC63B1C0C7B940600DBF169 /* CFG.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = DEC63B1B0C7B940600DBF169 /* CFG.h */; };
DEC8D9910A9433CD00353FCA /* Decl.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = DEC8D9900A9433CD00353FCA /* Decl.h */; };
DEC8D9A40A94346E00353FCA /* AST.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = DEC8D9A30A94346E00353FCA /* AST.h */; };
DECAB0950DA684C500E13CCB /* CGObjCEtoile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DECAB0940DA684C500E13CCB /* CGObjCEtoile.cpp */; };
DED626C90AE0C065001E80A4 /* TargetInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DED626C80AE0C065001E80A4 /* TargetInfo.cpp */; };
DED62ABB0AE2EDF1001E80A4 /* Decl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DED62ABA0AE2EDF1001E80A4 /* Decl.cpp */; };
DED676D10B6C786700AAD4A3 /* Builtins.def in CopyFiles */ = {isa = PBXBuildFile; fileRef = DED676D00B6C786700AAD4A3 /* Builtins.def */; };
@ -409,6 +410,7 @@
DEC63B1B0C7B940600DBF169 /* CFG.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = CFG.h; path = clang/AST/CFG.h; sourceTree = "<group>"; };
DEC8D9900A9433CD00353FCA /* Decl.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = Decl.h; path = clang/AST/Decl.h; sourceTree = "<group>"; };
DEC8D9A30A94346E00353FCA /* AST.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = AST.h; path = clang/AST/AST.h; sourceTree = "<group>"; };
DECAB0940DA684C500E13CCB /* CGObjCEtoile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CGObjCEtoile.cpp; path = lib/CodeGen/CGObjCEtoile.cpp; sourceTree = "<group>"; };
DED626C80AE0C065001E80A4 /* TargetInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = TargetInfo.cpp; sourceTree = "<group>"; };
DED62ABA0AE2EDF1001E80A4 /* Decl.cpp */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 2; lastKnownFileType = sourcecode.cpp.cpp; name = Decl.cpp; path = lib/AST/Decl.cpp; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
DED676D00B6C786700AAD4A3 /* Builtins.def */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; name = Builtins.def; path = clang/AST/Builtins.def; sourceTree = "<group>"; };
@ -685,6 +687,7 @@
1A7342470C7B57D500122F56 /* CGObjC.cpp */,
DE38CD4E0D794CF900A273B6 /* CGObjCRuntime.h */,
DE38CD4F0D794D0100A273B6 /* CGObjCGNU.cpp */,
DECAB0940DA684C500E13CCB /* CGObjCEtoile.cpp */,
DE4772F90C10EAE5002239E8 /* CGStmt.cpp */,
DE928B120C05659200231DA4 /* ModuleBuilder.cpp */,
);
@ -1041,6 +1044,7 @@
3574BC2B0D9B531D00DF491A /* HTMLDiagnostics.cpp in Sources */,
35F8D0D60D9B82CD00D91C5E /* BasicObjCFoundationChecks.cpp in Sources */,
3593790A0DA48ABA0043B19C /* BugReporter.cpp in Sources */,
DECAB0950DA684C500E13CCB /* CGObjCEtoile.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};

View File

@ -76,16 +76,13 @@ CGObjCEtoile::CGObjCEtoile(llvm::Module &M,
// Object type
llvm::OpaqueType *OpaqueObjTy = llvm::OpaqueType::get();
llvm::Type *OpaqueIdTy = llvm::PointerType::getUnqual(OpaqueObjTy);
IdTy = llvm::PointerType::getUnqual(llvm::StructType::get(OpaqueIdTy, 0));
IdTy = llvm::PointerType::getUnqual(llvm::StructType::get(OpaqueIdTy, NULL));
OpaqueObjTy->refineAbstractTypeTo(IdTy);
// Call structure type.
llvm::OpaqueType *OpaqueSlotTy = llvm::OpaqueType::get();
CallTy = llvm::StructType::get(llvm::PointerType::getUnqual(OpaqueSlotTy),
SelectorTy,
IdTy,
0);
//CallTy = llvm::PointerType::getUnqual(CallTy);
SelectorTy, IdTy, NULL);
// IMP type
std::vector<const llvm::Type*> IMPArgs;
@ -94,12 +91,8 @@ CGObjCEtoile::CGObjCEtoile(llvm::Module &M,
IMPTy = llvm::FunctionType::get(IdTy, IMPArgs, true);
// Slot type
SlotTy = llvm::StructType::get(IntTy,
IMPTy,
PtrToInt8Ty,
PtrToInt8Ty,
llvm::Type::Int32Ty,
0);
SlotTy = llvm::StructType::get(IntTy, IMPTy, PtrToInt8Ty, PtrToInt8Ty,
llvm::Type::Int32Ty, NULL);
OpaqueSlotTy->refineAbstractTypeTo(SlotTy);
SlotTy = llvm::PointerType::getUnqual(SlotTy);
@ -124,11 +117,8 @@ llvm::Value *CGObjCEtoile::getSelector(llvm::LLVMFoldingBuilder &Builder,
SelTypes = llvm::ConstantPointerNull::get(PtrToInt8Ty);
}
llvm::Constant *SelFunction =
TheModule.getOrInsertFunction("lookup_typed_selector",
SelectorTy,
PtrToInt8Ty,
PtrToInt8Ty,
0);
TheModule.getOrInsertFunction("lookup_typed_selector", SelectorTy,
PtrToInt8Ty, PtrToInt8Ty, NULL);
llvm::SmallVector<llvm::Value*, 2> Args;
Args.push_back(SelName);
Args.push_back(SelTypes);