diff options
author | Matthias Kretz <m.kretz@gsi.de> | 2023-02-20 11:13:44 +0100 |
---|---|---|
committer | Matthias Kretz <m.kretz@gsi.de> | 2023-02-23 15:01:49 +0100 |
commit | 92c47b15d5af3e7f93d11ad69a45b6d1cb8661c5 (patch) | |
tree | 5b001de53d138da8fb0d642707154b155ff637d9 | |
parent | 2e29e2fbeb8936e5c85cefaf547cba42e17e137b (diff) | |
download | gcc-92c47b15d5af3e7f93d11ad69a45b6d1cb8661c5.zip gcc-92c47b15d5af3e7f93d11ad69a45b6d1cb8661c5.tar.gz gcc-92c47b15d5af3e7f93d11ad69a45b6d1cb8661c5.tar.bz2 |
libstdc++: Fix simd build failure on clang
Clang does not support __attribute__ on lambdas. Therefore, only set
_GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA if __clang__ is not defined.
Signed-off-by: Matthias Kretz <m.kretz@gsi.de>
libstdc++-v3/ChangeLog:
PR libstdc++/108030
* include/experimental/bits/simd_detail.h
(_GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA): Define as empty for
__clang__.
-rw-r--r-- | libstdc++-v3/include/experimental/bits/simd_detail.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/libstdc++-v3/include/experimental/bits/simd_detail.h b/libstdc++-v3/include/experimental/bits/simd_detail.h index a0ad10e..30cc1ef 100644 --- a/libstdc++-v3/include/experimental/bits/simd_detail.h +++ b/libstdc++-v3/include/experimental/bits/simd_detail.h @@ -254,15 +254,16 @@ #ifdef __clang__ #define _GLIBCXX_SIMD_NORMAL_MATH +#define _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA #else #define _GLIBCXX_SIMD_NORMAL_MATH \ [[__gnu__::__optimize__("finite-math-only,no-signed-zeros")]] +#define _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA __attribute__((__always_inline__)) #endif #define _GLIBCXX_SIMD_NEVER_INLINE [[__gnu__::__noinline__]] #define _GLIBCXX_SIMD_INTRINSIC \ [[__gnu__::__always_inline__, __gnu__::__artificial__]] inline #define _GLIBCXX_SIMD_ALWAYS_INLINE [[__gnu__::__always_inline__]] inline -#define _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA __attribute__((__always_inline__)) #define _GLIBCXX_SIMD_IS_UNLIKELY(__x) __builtin_expect(__x, 0) #define _GLIBCXX_SIMD_IS_LIKELY(__x) __builtin_expect(__x, 1) |