c3d / xl

A minimalist, general-purpose programming language based on meta-programming and parse tree rewrites
GNU General Public License v3.0
270 stars 15 forks source link

Improve llvm-crap to deal with deprecated functions in LLVM 9.0.1 #39

Open c3d opened 4 years ago

c3d commented 4 years ago

With LLVM 9.0.1, there is the following warning:

llvm-crap.cpp: In constructor ‘XL::JITPrivate::JITPrivate(int, char**)’:
llvm-crap.cpp:560:20: warning: ‘llvm::orc::LegacyRTDyldObjectLinkingLayer::LegacyRTDyldObjectLinkingLayer(llvm::orc::ExecutionSession&, llvm::orc::LegacyRTDyldObjectLinkingLayer::ResourcesGetter, llvm::orc::LegacyRTDyldObjectLinkingLayer::NotifyLoadedFtor, llvm::orc::LegacyRTDyldObjectLinkingLayer::NotifyFinalizedFtor, llvm::orc::LegacyRTDyldObjectLinkingLayer::NotifyFreedFtor)’ is deprecated [-Wdeprecated-declarations]
  560 |       moduleHandle()
      |                    ^
In file included from /usr/include/llvm/ADT/APInt.h:18,
                 from /usr/include/llvm/ADT/APFloat.h:19,
                 from /usr/include/llvm/IR/Type.h:17,
                 from llvm-crap.h:55,
                 from llvm-crap.cpp:40:
/usr/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h:356:3: note: declared here
  356 |   LLVM_ATTRIBUTE_DEPRECATED(
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~
llvm-crap.cpp:560:20: warning: ‘llvm::orc::LegacyIRCompileLayer<BaseLayerT, CompileFtor>::LegacyIRCompileLayer(BaseLayerT&, CompileFtor, llvm::orc::LegacyIRCompileLayer<BaseLayerT, CompileFtor>::NotifyCompiledCallback) [with BaseLayerT = llvm::orc::LegacyRTDyldObjectLinkingLayer; CompileFtor = llvm::orc::SimpleCompiler; llvm::orc::LegacyIRCompileLayer<BaseLayerT, CompileFtor>::NotifyCompiledCallback = std::function<void(long unsigned int, std::unique_ptr<llvm::Module>)>]’ is deprecated [-Wdeprecated-declarations]
  560 |       moduleHandle()
      |                    ^
In file included from llvm-crap.cpp:168:
/usr/include/llvm/ExecutionEngine/Orc/IRCompileLayer.h:136:1: note: declared here
  136 | LegacyIRCompileLayer<BaseLayerT, CompileFtor>::LegacyIRCompileLayer(
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
llvm-crap.cpp:560:20: warning: ‘llvm::orc::LegacyIRTransformLayer<BaseLayerT, TransformFtor>::LegacyIRTransformLayer(BaseLayerT&, TransformFtor) [with BaseLayerT = llvm::orc::LegacyIRCompileLayer<llvm::orc::LegacyRTDyldObjectLinkingLayer, llvm::orc::SimpleCompiler>; TransformFtor = std::function<std::unique_ptr<llvm::Module>(std::unique_ptr<llvm::Module>)>]’ is deprecated [-Wdeprecated-declarations]
  560 |       moduleHandle()
      |                    ^
In file included from llvm-crap.cpp:169:
/usr/include/llvm/ExecutionEngine/Orc/IRTransformLayer.h:120:1: note: declared here
  120 | LegacyIRTransformLayer<BaseLayerT, TransformFtor>::LegacyIRTransformLayer(
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~