On Sep 2, 2010, at 10:16 AM, David Chisnall wrote: > Author: theraven > Date: Thu Sep 2 12:16:32 2010 > New Revision: 112833 > > URL: http://llvm.org/viewvc/llvm-project?rev=112833&view=rev > Log: > Use the unmangled name for the display name in Objective-C debug info. This > should have no effect with the Mac runtime where clang (unlike GCC) uses the > display name symbol name. >
test case ? > > Modified: > cfe/trunk/lib/CodeGen/CGDebugInfo.cpp > > Modified: cfe/trunk/lib/CodeGen/CGDebugInfo.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGDebugInfo.cpp?rev=112833&r1=112832&r2=112833&view=diff > ============================================================================== > --- cfe/trunk/lib/CodeGen/CGDebugInfo.cpp (original) > +++ cfe/trunk/lib/CodeGen/CGDebugInfo.cpp Thu Sep 2 12:16:32 2010 > @@ -1471,6 +1471,20 @@ > Name = getFunctionName(FD); > // Use mangled name as linkage name for c/c++ functions. > LinkageName = CGM.getMangledName(GD); > + } else if (const ObjCMethodDecl *OMD = dyn_cast<ObjCMethodDecl>(D)) { > + llvm::SmallString<256> MethodName; > + llvm::raw_svector_ostream OS(MethodName); > + OS << (OMD->isInstanceMethod() ? '-' : '+') << '['; > + const DeclContext *DC = OMD->getDeclContext(); > + if (const ObjCImplementationDecl *OID = dyn_cast<const > ObjCImplementationDecl>(DC)) { > + OS << OID->getName(); > + } else if (const ObjCCategoryImplDecl *OCD = dyn_cast<const > ObjCCategoryImplDecl>(DC)){ > + OS << ((NamedDecl *)OCD)->getIdentifier()->getNameStart() << '(' << > + OCD->getIdentifier()->getNameStart() << ')'; > + } > + OS << ' ' << OMD->getSelector().getAsString() << ']'; > + Name = MethodName; Isn't this means Name will reference local SmallString MethodName outside MethodName's scope ? Please use separate function here and if you need special treatment for GNU runtime then the code path should not be run for NEXT runtime. - Devang > + LinkageName = Name; > } else { > // Use llvm function name as linkage name. > Name = Fn->getName(); > > > _______________________________________________ > cfe-commits mailing list > [email protected] > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
