From: Jonathan Wakely Date: Fri, 10 Nov 2023 21:06:15 +0000 (+0000) Subject: libstdc++: Do not use assume attribute for Clang [PR112467] X-Git-Tag: basepoints/gcc-15~4789 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=807f47497f17ed50be91f0f879308cb6fa063966;p=thirdparty%2Fgcc.git libstdc++: Do not use assume attribute for Clang [PR112467] Clang has an 'assume' attribute, but it's a function attribute not a statement attribute. The recently-added use of the statement form causes an error with Clang. libstdc++-v3/ChangeLog: PR libstdc++/112467 * include/bits/stl_bvector.h (_M_assume_normalized): Do not use statement form of assume attribute for Clang. --- diff --git a/libstdc++-v3/include/bits/stl_bvector.h b/libstdc++-v3/include/bits/stl_bvector.h index 2b91af2005f2..64f04c1f4f59 100644 --- a/libstdc++-v3/include/bits/stl_bvector.h +++ b/libstdc++-v3/include/bits/stl_bvector.h @@ -185,8 +185,10 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER void _M_assume_normalized() const { +#if __has_attribute(__assume__) && !defined(__clang__) unsigned int __ofst = _M_offset; __attribute__ ((__assume__ (__ofst < unsigned(_S_word_bit)))); +#endif } _GLIBCXX20_CONSTEXPR