diff options
author | Daniel Dunbar <daniel@zuster.org> | 2009-05-13 23:08:57 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2009-05-13 23:08:57 +0000 |
commit | a289393513d32f463a165a4b2990b11f5c6ab959 (patch) | |
tree | 266a6328d66569356fdf646268a367a50312b1c9 | |
parent | 9375ed13dcf7a681874f89f7580b59caddbb2660 (diff) |
Make sure not to include the LLVM asm prefix in function names for
debug info.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71736 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/CodeGen/CGDebugInfo.cpp | 4 | ||||
-rw-r--r-- | test/CodeGenObjC/debug-info.m | 7 |
2 files changed, 11 insertions, 0 deletions
diff --git a/lib/CodeGen/CGDebugInfo.cpp b/lib/CodeGen/CGDebugInfo.cpp index 67054f66b5..9b9fb18819 100644 --- a/lib/CodeGen/CGDebugInfo.cpp +++ b/lib/CodeGen/CGDebugInfo.cpp @@ -669,6 +669,10 @@ llvm::DIType CGDebugInfo::getOrCreateType(QualType Ty, void CGDebugInfo::EmitFunctionStart(const char *Name, QualType ReturnType, llvm::Function *Fn, CGBuilderTy &Builder) { + // Skip the asm prefix if it exists. + if (Name[0] == '\01') + ++Name; + // FIXME: Why is this using CurLoc??? llvm::DICompileUnit Unit = getOrCreateCompileUnit(CurLoc); SourceManager &SM = M->getContext().getSourceManager(); diff --git a/test/CodeGenObjC/debug-info.m b/test/CodeGenObjC/debug-info.m new file mode 100644 index 0000000000..178e51cf27 --- /dev/null +++ b/test/CodeGenObjC/debug-info.m @@ -0,0 +1,7 @@ +// RUN: clang-cc -triple i386-apple-darwin9 -g -emit-llvm -o %t %s && +// RUN: grep -F 'internal constant [8 x i8] c"-[A m0]\00"' %t + +@interface A @end +@implementation A +-(void) m0 {} +@end |