[llvm] r226940 - [Orc] New JIT APIs.

Reid Kleckner rnk at google.com
Fri Jan 23 14:28:06 PST 2015


Thanks, that helped! I managed to sort out the rest in r226949. The
typename in the typedef wasn't necessary according to clang and MSVC
rejected it.

On Fri, Jan 23, 2015 at 2:13 PM, Lang Hames <lhames at gmail.com> wrote:

> Hi Reid,
>
> This should be fixed in r226946. I'll keep my eye on the bots.
>
> Cheers,
> Lang.
>
>
> On Fri, Jan 23, 2015 at 2:10 PM, Lang Hames <lhames at gmail.com> wrote:
>
>> Hi Reid,
>>
>> Thanks for the heads up. I'm going to remove a few of the constructor
>> versions that are introducing the ambiguity. The fix should be in in a
>> moment.
>>
>> Cheers,
>> Lang.
>>
>> On Fri, Jan 23, 2015 at 2:09 PM, Reid Kleckner <rnk at google.com> wrote:
>>
>>> Having trouble figuring out how to fix the MSVC build after this. Here,
>>> have a wonderful compiler diagnostic:
>>>
>>> [22/231] Building CXX object
>>> lib\ExecutionEngine\Orc\CMakeFiles\LLVMOrcJIT.dir\OrcMCJITReplacement.cpp.obj
>>> FAILED: C:\PROGRA~2\MICROS~4.0\VC\bin\cl.exe   /nologo /TP /DWIN32
>>> /D_WINDOWS /W3   /MD /O2 /Ob2 -Ilib\ExecutionEngine\Orc
>>> -I..\lib\ExecutionEngine\Orc -Iinclude -I..\include    -UNDEBUG -wd4146
>>> -wd4180 -wd4244 -wd4258 -wd4267 -wd4291 -wd4345 -wd4351 -wd4355 -wd4456
>>> -wd4457 -wd4458 -wd4459 -wd4503 -wd4624 -wd4722 -wd4800 -w14062 -we4238
>>> /EHs-c- /GR- /showIncludes -DGTEST_HAS_RTTI=0 -D_CRT_NONSTDC_NO_DEPRECATE
>>> -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE
>>> -D_CRT_SECURE_NO_WARNINGS -D_HAS_EXCEPTIONS=0 -D_SCL_SECURE_NO_DEPRECATE
>>> -D_SCL_SECURE_NO_WARNINGS -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS
>>> -D__STDC_LIMIT_MACROS
>>> /Folib\ExecutionEngine\Orc\CMakeFiles\LLVMOrcJIT.dir\OrcMCJITReplacement.cpp.obj
>>> /Fdlib\ExecutionEngine\Orc\CMakeFiles\LLVMOrcJIT.dir/ /FS -c
>>> ..\lib\ExecutionEngine\Orc\OrcMCJITReplacement.cpp
>>> ..\include\llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h(77) : error
>>> C2899: typename cannot be used outside a template declaration
>>> d:\src\llvm\lib\executionengine\orc\OrcMCJITReplacement.h(127) : error
>>> C2668:
>>> 'llvm::ObjectLinkingLayer<llvm::OrcMCJITReplacement::NotifyObjectLoadedT>::ObjectLinkingLayer'
>>> : ambiguous call to overloaded function
>>>         ..\include\llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h(138):
>>> could be
>>> 'llvm::ObjectLinkingLayer<llvm::OrcMCJITReplacement::NotifyObjectLoadedT>::ObjectLinkingLayer(std::function<void
>>> (llvm::ObjectLinkingLayerBase::ObjSetHandleT)>,std::function<std::unique_ptr<llvm::RTDyldMemoryManager,std::default_delete<_Ty>>
>>> (void)>)'
>>>         with
>>>         [
>>>             _Ty=llvm::RTDyldMemoryManager
>>>         ]
>>>         ..\include\llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h(130):
>>> or
>>> 'llvm::ObjectLinkingLayer<llvm::OrcMCJITReplacement::NotifyObjectLoadedT>::ObjectLinkingLayer(NotifyLoadedFtor,std::function<std::unique_ptr<llvm::RTDyldMemoryManager,std::default_delete<_Ty>>
>>> (void)>)'
>>>         with
>>>         [
>>>
>>> NotifyLoadedFtor=llvm::OrcMCJITReplacement::NotifyObjectLoadedT
>>> ,            _Ty=llvm::RTDyldMemoryManager
>>>         ]
>>>         ..\include\llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h(123):
>>> or
>>> 'llvm::ObjectLinkingLayer<llvm::OrcMCJITReplacement::NotifyObjectLoadedT>::ObjectLinkingLayer(NotifyLoadedFtor,std::function<void
>>> (llvm::ObjectLinkingLayerBase::ObjSetHandleT)>)'
>>>         with
>>>         [
>>>
>>> NotifyLoadedFtor=llvm::OrcMCJITReplacement::NotifyObjectLoadedT
>>>         ]
>>>         while trying to match the argument list
>>> '(llvm::OrcMCJITReplacement::NotifyObjectLoadedT,
>>> llvm::OrcMCJITReplacement::NotifyFinalizedT)'
>>> d:\src\llvm\lib\executionengine\orc\OrcMCJITReplacement.h(260) : error
>>> C2593: 'operator =' is ambiguous
>>>         C:/PROGRA~2/MICROS~4.0/VC/include\set(180): could be
>>> 'std::set<const void *,std::less<_Kty>,std::allocator<_Kty>>
>>> &std::set<_Kty,std::less<_Kty>,std::allocator<_Kty>>::operator
>>> =(std::initializer_list<const void *>)'
>>>         with
>>>         [
>>>             _Kty=const void *
>>>         ]
>>>         C:/PROGRA~2/MICROS~4.0/VC/include\set(139): or
>>> 'std::set<const void *,std::less<_Kty>,std::allocator<_Kty>>
>>> &std::set<_Kty,std::less<_Kty>,std::allocator<_Kty>>::operator
>>> =(std::set<_Kty,std::less<_Kty>,std::allocator<_Kty>> &&)'
>>>         with
>>>         [
>>>             _Kty=const void *
>>>         ]
>>>         C:/PROGRA~2/MICROS~4.0/VC/include\set(123): or
>>> 'std::set<const void *,std::less<_Kty>,std::allocator<_Kty>>
>>> &std::set<_Kty,std::less<_Kty>,std::allocator<_Kty>>::operator =(const
>>> std::set<_Kty,std::less<_Kty>,std::allocator<_Kty>> &)'
>>>         with
>>>         [
>>>             _Kty=const void *
>>>         ]
>>>         while trying to match the argument list
>>> '(llvm::OrcMCJITReplacement::SectionAddrSet, initializer-list)'
>>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150123/c4ba435b/attachment.html>


More information about the llvm-commits mailing list