From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 7857) id 4355B3858CDA; Mon, 22 Apr 2024 18:56:48 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 4355B3858CDA DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1713812208; bh=KADQxtxyy4ROmhqcLHQkF5GnfBFK/GihKyAYLtuQs3E=; h=From:To:Subject:Date:From; b=Jb0twrMOC1+hiXc1Fe+7hsSUcOTdW9JfGPrvMI+1iUpnJ1jCNvLbzqXE8R/RAIlCn aARptKobtL5NB9shK3x5P0b7hd7plCrENpNkPUKuUjXLAOBXje7pgq3hSNJPPM86hI GHS+5/lPtdeKJje5QNRH2VINF/+72W2j/ajJmGpw= MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Matthias Kretz To: gcc-cvs@gcc.gnu.org, libstdc++-cvs@gcc.gnu.org Subject: [gcc r14-10078] libstdc++: Silence irrelevant warnings in X-Act-Checkin: gcc X-Git-Author: Matthias Kretz X-Git-Refname: refs/heads/master X-Git-Oldrev: b0469e35dbcc9a93a2cb50e3c0445edc3db174be X-Git-Newrev: e7a3ad29c9c832b6ae999cbfb0af89e121959030 Message-Id: <20240422185648.4355B3858CDA@sourceware.org> Date: Mon, 22 Apr 2024 18:56:48 +0000 (GMT) List-Id: https://gcc.gnu.org/g:e7a3ad29c9c832b6ae999cbfb0af89e121959030 commit r14-10078-ge7a3ad29c9c832b6ae999cbfb0af89e121959030 Author: Matthias Kretz Date: Wed Apr 17 10:35:47 2024 +0200 libstdc++: Silence irrelevant warnings in Avoid -Wnarrowing in C code; -Wtautological-compare in unconditional static_assert (necessary for faking a dependency on a template parameter) Signed-off-by: Matthias Kretz libstdc++-v3/ChangeLog: * include/experimental/bits/simd.h: Ignore -Wnarrowing for arm_neon.h. (__int_for_sizeof): Replace tautological compare with checking for invalid template parameter value. * include/experimental/bits/simd_builtin.h (__extract_part): Remove tautological compare by combining two static_assert. Diff: --- libstdc++-v3/include/experimental/bits/simd.h | 8 +++++++- libstdc++-v3/include/experimental/bits/simd_builtin.h | 3 +-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/libstdc++-v3/include/experimental/bits/simd.h b/libstdc++-v3/include/experimental/bits/simd.h index 03c2e17a326..6ef9c955cfa 100644 --- a/libstdc++-v3/include/experimental/bits/simd.h +++ b/libstdc++-v3/include/experimental/bits/simd.h @@ -44,7 +44,12 @@ #if _GLIBCXX_SIMD_X86INTRIN #include #elif _GLIBCXX_SIMD_HAVE_NEON +#pragma GCC diagnostic push +// narrowing conversion of '__a' from 'uint64_t' {aka 'long long unsigned int'} to +// 'int64x1_t' {aka 'long long int'} [-Wnarrowing] +#pragma GCC diagnostic ignored "-Wnarrowing" #include +#pragma GCC diagnostic pop #endif #if _GLIBCXX_SIMD_HAVE_SVE #include @@ -598,6 +603,7 @@ template constexpr auto __int_for_sizeof() { + static_assert(_Bytes > 0); if constexpr (_Bytes == sizeof(int)) return int(); #ifdef __clang__ @@ -663,7 +669,7 @@ template return _Ip{}; } else - static_assert(_Bytes != _Bytes, "this should be unreachable"); + static_assert(_Bytes == 0, "this should be unreachable"); } #pragma GCC diagnostic pop diff --git a/libstdc++-v3/include/experimental/bits/simd_builtin.h b/libstdc++-v3/include/experimental/bits/simd_builtin.h index af0c4886108..49c7c7e1c70 100644 --- a/libstdc++-v3/include/experimental/bits/simd_builtin.h +++ b/libstdc++-v3/include/experimental/bits/simd_builtin.h @@ -278,8 +278,7 @@ template __extract_part(const _SimdWrapper __x) { static_assert(_Combine == 1, "_Combine != 1 not implemented"); - static_assert(__have_avx512f && _Np == _Np); - static_assert(_Total >= 2 && _Index + _Combine <= _Total && _Index >= 0); + static_assert(__have_avx512f && _Total >= 2 && _Index + _Combine <= _Total && _Index >= 0); return __x._M_data >> (_Index * _Np / _Total); }