# HG changeset patch # User Julien Bect # Date 1500615164 -7200 # Node ID ca25f6e48ca5d5f49d62997b0e27a3c6ca34e6ff # Parent 939925a782e873e9b068971c2f4f086c8f2288fb jit: Convert llvm::Function::arg_iterator to pointer explicitely * libinterp/corefcn/jit-typeinfo.cc: Convert llvm::Function::arg_iterator to pointer explicitely. Implicit conversion has been removed in LLVM 3.8.0. * libinterp/corefcn/pt-jit.cc: Idem. diff -r 939925a782e8 -r ca25f6e48ca5 libinterp/parse-tree/jit-typeinfo.cc --- a/libinterp/parse-tree/jit-typeinfo.cc Sat Nov 04 22:13:03 2017 +0100 +++ b/libinterp/parse-tree/jit-typeinfo.cc Fri Jul 21 07:32:44 2017 +0200 @@ -725,9 +725,9 @@ for (size_t i = 0; i < idx; ++i, ++iter); if (args[idx]->pointer_arg (call_conv)) - return builder.CreateLoad (iter); + return builder.CreateLoad (&*iter); - return iter; + return &*iter; } void @@ -744,7 +744,7 @@ if (sret ()) { - builder.CreateStore (rval, llvm_function->arg_begin ()); + builder.CreateStore (rval, &*(llvm_function->arg_begin ())); builder.CreateRetVoid (); } else diff -r 939925a782e8 -r ca25f6e48ca5 libinterp/parse-tree/pt-jit.cc --- a/libinterp/parse-tree/pt-jit.cc Sat Nov 04 22:13:03 2017 +0100 +++ b/libinterp/parse-tree/pt-jit.cc Fri Jul 21 07:32:44 2017 +0200 @@ -1330,7 +1330,7 @@ prelude = llvm::BasicBlock::Create (context, "prelude", function); builder.SetInsertPoint (prelude); - llvm::Value *arg = function->arg_begin (); + llvm::Value *arg = &*(function->arg_begin ()); for (size_t i = 0; i < argument_vec.size (); ++i) { llvm::Value *loaded_arg = builder.CreateConstInBoundsGEP1_32 (arg, i);