[Orc] Fix copy elision warning in RPCUtils
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. Differential Revision: https://reviews.llvm.org/D98947
Loading
Please sign in to comment