diff options
author | Devang Patel <dpatel@apple.com> | 2009-07-14 21:31:22 +0000 |
---|---|---|
committer | Devang Patel <dpatel@apple.com> | 2009-07-14 21:31:22 +0000 |
commit | 6dba432c7b862c2219e5d6e52b0cd188fbf84b01 (patch) | |
tree | 1342be3f46a2fca0186d1a4b65eb8dc4b0c5aa70 | |
parent | 60fbe8f79838bff41fe9f5ed506ea9bc89d5d1df (diff) |
Revert 75648 for now. It is causing test failures.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75684 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/CodeGen/CGDebugInfo.cpp | 27 | ||||
-rw-r--r-- | lib/CodeGen/CGDebugInfo.h | 5 | ||||
-rw-r--r-- | lib/CodeGen/CodeGenModule.cpp | 4 | ||||
-rw-r--r-- | test/CodeGenObjC/debug-info-linkagename.m | 2 | ||||
-rw-r--r-- | test/CodeGenObjC/debug-info.m | 4 |
5 files changed, 12 insertions, 30 deletions
diff --git a/lib/CodeGen/CGDebugInfo.cpp b/lib/CodeGen/CGDebugInfo.cpp index 3d7548e293..a5e4b2f3ad 100644 --- a/lib/CodeGen/CGDebugInfo.cpp +++ b/lib/CodeGen/CGDebugInfo.cpp @@ -19,7 +19,6 @@ #include "clang/AST/Expr.h" #include "clang/Basic/SourceManager.h" #include "clang/Basic/FileManager.h" -#include "clang/Basic/TargetInfo.h" #include "clang/Frontend/CompileOptions.h" #include "llvm/Constants.h" #include "llvm/DerivedTypes.h" @@ -34,22 +33,12 @@ using namespace clang; using namespace clang::CodeGen; -CGDebugInfo::CGDebugInfo(CodeGenModule *m, TargetInfo *t) +CGDebugInfo::CGDebugInfo(CodeGenModule *m) : M(m), isMainCompileUnitCreated(false), DebugFactory(M->getModule()), BlockLiteralGenericSet(false) { - LLVMMangler = new llvm::Mangler(m->getModule(), t->getUserLabelPrefix(), "."); - // add chars used in ObjC method names so method names aren't mangled - LLVMMangler->markCharAcceptable('['); - LLVMMangler->markCharAcceptable(']'); - LLVMMangler->markCharAcceptable('('); - LLVMMangler->markCharAcceptable(')'); - LLVMMangler->markCharAcceptable('-'); - LLVMMangler->markCharAcceptable('+'); - LLVMMangler->markCharAcceptable(' '); } CGDebugInfo::~CGDebugInfo() { - delete LLVMMangler; assert(RegionStack.empty() && "Region stack mismatch, stack not empty!"); } @@ -831,6 +820,8 @@ llvm::DIType CGDebugInfo::getOrCreateType(QualType Ty, void CGDebugInfo::EmitFunctionStart(const char *Name, QualType ReturnType, llvm::Function *Fn, CGBuilderTy &Builder) { + const char *LinkageName = Name; + // Skip the asm prefix if it exists. // // FIXME: This should probably be the unmangled name? @@ -843,9 +834,7 @@ void CGDebugInfo::EmitFunctionStart(const char *Name, QualType ReturnType, unsigned LineNo = SM.getPresumedLoc(CurLoc).getLine(); llvm::DISubprogram SP = - DebugFactory.CreateSubprogram(Unit, Name, Name, - LLVMMangler->getMangledName(Fn), - Unit, LineNo, + DebugFactory.CreateSubprogram(Unit, Name, Name, LinkageName, Unit, LineNo, getOrCreateType(ReturnType, Unit), Fn->hasInternalLinkage(), true/*definition*/); @@ -980,9 +969,7 @@ void CGDebugInfo::EmitGlobalVariable(llvm::GlobalVariable *Var, ArrayType::Normal, 0); } - DebugFactory.CreateGlobalVariable(Unit, Name, Name, - LLVMMangler->getMangledName(Var), - Unit, LineNo, + DebugFactory.CreateGlobalVariable(Unit, Name, Name, "", Unit, LineNo, getOrCreateType(T, Unit), Var->hasInternalLinkage(), true/*definition*/, Var); @@ -1012,9 +999,7 @@ void CGDebugInfo::EmitGlobalVariable(llvm::GlobalVariable *Var, ArrayType::Normal, 0); } - DebugFactory.CreateGlobalVariable(Unit, Name, Name, - LLVMMangler->getMangledName(Var), - Unit, LineNo, + DebugFactory.CreateGlobalVariable(Unit, Name, Name, "", Unit, LineNo, getOrCreateType(T, Unit), Var->hasInternalLinkage(), true/*definition*/, Var); diff --git a/lib/CodeGen/CGDebugInfo.h b/lib/CodeGen/CGDebugInfo.h index 5cb5f09da8..ac28e5b879 100644 --- a/lib/CodeGen/CGDebugInfo.h +++ b/lib/CodeGen/CGDebugInfo.h @@ -16,7 +16,6 @@ #include "clang/AST/Type.h" #include "clang/Basic/SourceLocation.h" -#include "llvm/Support/Mangler.h" #include "llvm/ADT/DenseMap.h" #include "llvm/Analysis/DebugInfo.h" #include <map> @@ -26,7 +25,6 @@ namespace clang { class VarDecl; class ObjCInterfaceDecl; - class TargetInfo; namespace CodeGen { class CodeGenModule; @@ -36,7 +34,6 @@ namespace CodeGen { /// the backend. class CGDebugInfo { CodeGenModule *M; - llvm::Mangler *LLVMMangler; bool isMainCompileUnitCreated; llvm::DIFactory DebugFactory; @@ -71,7 +68,7 @@ class CGDebugInfo { llvm::DIType CreateType(const ArrayType *Ty, llvm::DICompileUnit U); public: - CGDebugInfo(CodeGenModule *m, TargetInfo *t); + CGDebugInfo(CodeGenModule *m); ~CGDebugInfo(); /// setLocation - Update the current source location. If \arg loc is diff --git a/lib/CodeGen/CodeGenModule.cpp b/lib/CodeGen/CodeGenModule.cpp index 9ac68718a5..b516da9a72 100644 --- a/lib/CodeGen/CodeGenModule.cpp +++ b/lib/CodeGen/CodeGenModule.cpp @@ -52,9 +52,7 @@ CodeGenModule::CodeGenModule(ASTContext &C, const CompileOptions &compileOpts, Runtime = CreateMacObjCRuntime(*this); // If debug info generation is enabled, create the CGDebugInfo object. - DebugInfo = 0; - if (CompileOpts.DebugInfo) - DebugInfo = new CGDebugInfo(this, &Context.Target); + DebugInfo = CompileOpts.DebugInfo ? new CGDebugInfo(this) : 0; } CodeGenModule::~CodeGenModule() { diff --git a/test/CodeGenObjC/debug-info-linkagename.m b/test/CodeGenObjC/debug-info-linkagename.m index bda98eec49..dfd1dfa98b 100644 --- a/test/CodeGenObjC/debug-info-linkagename.m +++ b/test/CodeGenObjC/debug-info-linkagename.m @@ -1,5 +1,7 @@ // RUN: clang-cc -g -S -o %t %s // RUN: not grep 001 %t +// XFAIL + @interface F -(int) bar; diff --git a/test/CodeGenObjC/debug-info.m b/test/CodeGenObjC/debug-info.m index 9f44774495..519706be79 100644 --- a/test/CodeGenObjC/debug-info.m +++ b/test/CodeGenObjC/debug-info.m @@ -1,7 +1,7 @@ // RUN: clang-cc -triple i386-apple-darwin9 -g -emit-llvm -o %t %s && // RUN: grep '@.str3 = internal constant \[8 x i8\] c"-\[A m0\]\\00"' %t && -// RUN: grep '@.str4 = internal constant \[2 x i8\] c"A\\00"' %t && -// RUN: grep '@llvm.dbg.subprogram = .* @.str3, .* @.str3, .* @.str3,' %t && +// RUN: grep '@.str4 = internal constant \[9 x i8\] c"\\01-\[A m0\]\\00"' %t && +// RUN: grep '@llvm.dbg.subprogram = .* @.str3, .* @.str3, .* @.str4,' %t && // RUN: grep '@llvm.dbg.composite.* = .* i32 15, i64 0, i64 8, .* i32 16' %t && // RUN: true |