[llvm-commits] [llvm] r131603 - /llvm/trunk/lib/ExecutionEngine/MCJIT/MCJIT.cpp
Jim Grosbach
grosbach at apple.com
Wed May 18 17:50:48 PDT 2011
On May 18, 2011, at 5:14 PM, Chris Lattner wrote:
>
> On May 18, 2011, at 4:56 PM, Jim Grosbach wrote:
>
>> Author: grosbach
>> Date: Wed May 18 18:56:43 2011
>> New Revision: 131603
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=131603&view=rev
>> Log:
>> Restore sanity to 131601.
>>
>> Modified:
>> llvm/trunk/lib/ExecutionEngine/MCJIT/MCJIT.cpp
>>
>> Modified: llvm/trunk/lib/ExecutionEngine/MCJIT/MCJIT.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/ExecutionEngine/MCJIT/MCJIT.cpp?rev=131603&r1=131602&r2=131603&view=diff
>> ==============================================================================
>> --- llvm/trunk/lib/ExecutionEngine/MCJIT/MCJIT.cpp (original)
>> +++ llvm/trunk/lib/ExecutionEngine/MCJIT/MCJIT.cpp Wed May 18 18:56:43 2011
>> @@ -104,10 +104,11 @@
>>
>> // FIXME: Should we be using the mangler for this? Probably.
>> StringRef BaseName = F->getName();
>> + Twine Name;
>> if (BaseName[0] == '\1')
>> - BaseName = BaseName.substr(1);
>> + Name = BaseName.substr(1);
>> else
>> - Twine Name = TM->getMCAsmInfo()->getGlobalPrefix() + BaseName;
>> + Name = TM->getMCAsmInfo()->getGlobalPrefix() + BaseName;
>> return (void*)Dyld.getSymbolAddress(Name.str());
>> }
>
> Hi Jim,
>
> This code won't work. The temporary formed by the "+" in the second case dies too early. You need to do something like this:
>
> return (void*)Dyld.getSymbolAddress(TM->getMCAsmInfo()->getGlobalPrefix() + BaseName);
Quite right. That would have been a nasty little thing to track down later. Thanks!
r131612
-Jim
More information about the llvm-commits
mailing list