The callB() template function always moved errors on return, because in the majority of cases its return type is an Expected<T> and the error must be moved into the implicit ctor.
For the special case of a void result, however, the ResultTraits class is specialized and the return type is a raw Error. Some build bots complain, that in favor of NRVO errors should not be moved in this case.
llvm/include/llvm/ExecutionEngine/Orc/Shared/RPCUtils.h:1513:27: llvm/include/llvm/ExecutionEngine/Orc/Shared/RPCUtils.h:1519:27: llvm/include/llvm/ExecutionEngine/Orc/Shared/RPCUtils.h:1526:29: warning: moving a local object in a return statement prevents copy elision [-Wpessimizing-move]
The warning is reasonable from a type-system point of view. For performance it's entirely insignificant.