From: Devang Patel Date: Mon, 17 Aug 2009 23:17:17 +0000 (+0000) Subject: Add prefix only if it is needed. X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=4b49cd298a372b58d22ae41cba7a379e9325bfbd;p=oota-llvm.git Add prefix only if it is needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79289 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/VMCore/Mangler.cpp b/lib/VMCore/Mangler.cpp index 44cf7782662..8c918434e3f 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 00000000000..cf962384f67 --- /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; +}