summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErik Kundiman <erik@megapahit.org>2023-09-15 14:27:35 +0800
committerErik Kundiman <erik@megapahit.org>2023-09-15 14:27:35 +0800
commit5becd1b8a664901a1199e435556899e31e338e69 (patch)
treebbf0d9eb77929642456a29b327e28054119a65bd
parent8ba741e85049ce9d42d2e9d049dd62566d074f03 (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.h4
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)