Skip to content

Commit f3f6b3b

Browse files
authored
GCC14/C++23 compatibility fix (#1014)
Fixes the following error, when compiling with GCC 14, using `-std=c++23`: ``` <>/basisu/encoder/basisu_kernels_sse.cpp:41: <>/basisu/encoder/cppspmd_sse.h: In member function ‘cppspmd_sse41::spmd_kernel::vfloat& cppspmd_sse41::spmd_kernel::store(vfloat&&, const vfloat&)’: <>/basisu/encoder/cppspmd_sse.h:496:24: error: cannot bind non-const lvalue reference of type ‘cppspmd_sse41::spmd_kernel::vfloat&’ to an rvalue of type ‘cppspmd_sse41::spmd_kernel::vfloat’ 496 | return dst; | ^~~ <>/basisu/encoder/cppspmd_sse.h: In member function ‘cppspmd_sse41::spmd_kernel::vfloat& cppspmd_sse41::spmd_kernel::store_all(vfloat&&, const vfloat&)’: <>/basisu/encoder/cppspmd_sse.h:508:24: error: cannot bind non-const lvalue reference of type ‘cppspmd_sse41::spmd_kernel::vfloat&’ to an rvalue of type ‘cppspmd_sse41::spmd_kernel::vfloat’ 508 | return dst; | ^~~ ```
1 parent 6d1fc82 commit f3f6b3b

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

external/basisu/encoder/cppspmd_sse.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -493,7 +493,7 @@ struct spmd_kernel
493493
CPPSPMD_FORCE_INLINE vfloat& store(vfloat&& dst, const vfloat& src)
494494
{
495495
dst.m_value = blendv_mask_ps(dst.m_value, src.m_value, _mm_castsi128_ps(m_exec.m_mask));
496-
return dst;
496+
return { dst };
497497
}
498498

499499
CPPSPMD_FORCE_INLINE vfloat& store_all(vfloat& dst, const vfloat& src)
@@ -505,7 +505,7 @@ struct spmd_kernel
505505
CPPSPMD_FORCE_INLINE vfloat& store_all(vfloat&& dst, const vfloat& src)
506506
{
507507
dst.m_value = src.m_value;
508-
return dst;
508+
return { dst };
509509
}
510510

511511
// Linear ref to floats

0 commit comments

Comments
 (0)