diff options
author | Erik Kundiman <erik@megapahit.org> | 2023-09-15 14:27:35 +0800 |
---|---|---|
committer | Erik Kundiman <erik@megapahit.org> | 2023-09-15 14:27:35 +0800 |
commit | 5becd1b8a664901a1199e435556899e31e338e69 (patch) | |
tree | bbf0d9eb77929642456a29b327e28054119a65bd | |
parent | 8ba741e85049ce9d42d2e9d049dd62566d074f03 (diff) |
Remove std::move on Linux as it fails GCC
"moving a local object in a return statement prevents copy elision
[-Werror=pessimizing-move]"
We're back to using GCC cause Clang somehow causes CPack to not work.
-rw-r--r-- | indra/llcommon/llthreadsafequeue.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/indra/llcommon/llthreadsafequeue.h b/indra/llcommon/llthreadsafequeue.h index f396a71e6f..3ffba7b377 100644 --- a/indra/llcommon/llthreadsafequeue.h +++ b/indra/llcommon/llthreadsafequeue.h @@ -452,7 +452,11 @@ ElementT LLThreadSafeQueue<ElementT, QueueT>::pop(void) // so we can finish draining the queue. pop_result popped = pop_(lock1, value); if (popped == POPPED) +#if LL_LINUX + return value; +#else return std::move(value); +#endif // Once the queue is DONE, there will never be any more coming. if (popped == DONE) |