diff options
author | Devang Patel <dpatel@apple.com> | 2009-08-17 23:17:17 +0000 |
---|---|---|
committer | Devang Patel <dpatel@apple.com> | 2009-08-17 23:17:17 +0000 |
commit | 4b49cd298a372b58d22ae41cba7a379e9325bfbd (patch) | |
tree | 5556853eb446d4d93e012e5f8cc8d1da34d632aa | |
parent | 606f3d696ff78211524fa49c3ca0c4de6db37041 (diff) |
Add prefix only if it is needed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79289 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/VMCore/Mangler.cpp | 5 | ||||
-rw-r--r-- | test/FrontendObjC/2009-08-17-DebugInfo.m | 30 |
2 files changed, 33 insertions, 2 deletions
diff --git a/lib/VMCore/Mangler.cpp b/lib/VMCore/Mangler.cpp index 44cf778266..8c918434e3 100644 --- a/lib/VMCore/Mangler.cpp +++ b/lib/VMCore/Mangler.cpp @@ -105,8 +105,9 @@ std::string Mangler::makeNameProper(const std::string &X, return Result; } - - Result = X.substr(0, I-X.begin()); + + if (NeedPrefix) + Result = X.substr(0, I-X.begin()); // Otherwise, construct the string the expensive way. for (std::string::const_iterator E = X.end(); I != E; ++I) { diff --git a/test/FrontendObjC/2009-08-17-DebugInfo.m b/test/FrontendObjC/2009-08-17-DebugInfo.m new file mode 100644 index 0000000000..cf962384f6 --- /dev/null +++ b/test/FrontendObjC/2009-08-17-DebugInfo.m @@ -0,0 +1,30 @@ +// This is a regression test on debug info to make sure that we can set a +// breakpoint on a objective message. +// RUN: %llvmgcc -S -O0 -g %s -o - | llvm-as | llc -o %t.s -f -O0 +// RUN: %compile_c %t.s -o %t.o +// RUN: %link %t.o -o %t.exe -framework Foundation +// RUN: echo {break randomFunc\n} > %t.in +// RUN: gdb -q -batch -n -x %t.in %t.exe | tee %t.out | \ +// RUN: grep {Breakpoint 1 at 0x.*: file 2009-08-17-DebugInfo.m, line 22} +// XTARGETS: darwin +@interface MyClass +{ + int my; +} ++ init; +- randomFunc; +@end + +@implementation MyClass ++ init { +} +- randomFunc { + my = 42; +} +@end + +int main() { + id o = [MyClass init]; + [o randomFunc]; + return 0; +} |