[committed] Fix -Wmissing-attributes warning in libstdc++ (PR libstdc++/89402)
Jonathan Wakely
jwakely@redhat.com
Fri Feb 22 01:10:00 GMT 2019
On 20/02/19 09:07 +0100, Jakub Jelinek wrote:
>Hi!
>
>The following patch fixes a warning when building on targets where long
>double switched from being the same as double to something wider,
>like e.g. powerpc*-linux, alpha*-linux, s390*-linux etc.
>
>Fixed thusly, bootstrapped/regtested on {x86_64,i686,s390x}-linux and
>bootstrapped on powerpc64le-linux, on both s390x and powerpc64le it removed
>all
>../../../../libstdc++-v3/src/c++98/compatibility-ldbl.cc:77:17: warning: 'void _ZNKSt4hashIeEclEe()' specifies less restrictive attribute than its target 'std::size_t std::tr1::hash<_Tp>::operator()(_Tp) const [with _Tp = long double]': 'pure' [-Wmissing-attributes]
>warnings from the build log. Preapproved by Jonathan in the PR, committed
>to trunk.
Now I see:
/home/jwakely/src/gcc/libstdc++-v3/src/c++98/compatibility-ldbl.cc:78:65: warning: âpureâ attribute on function returning âvoidâ [-Wattributes]
78 | _GLIBCXX_PURE __attribute__((alias ("_ZNKSt3tr14hashIeEclEe")));
| ^
We can disable that with a diagnostic pragma.
>2019-02-20 Jakub Jelinek <jakub@redhat.com>
>
> PR libstdc++/89402
> * src/c++98/compatibility-ldbl.cc (_ZNKSt4hashIeEclEe): Add
> _GLIBCXX_PURE to the alias declaration.
>
>--- libstdc++-v3/src/c++98/compatibility-ldbl.cc.jj 2019-01-01 12:39:41.530606161 +0100
>+++ libstdc++-v3/src/c++98/compatibility-ldbl.cc 2019-02-19 16:12:52.402123217 +0100
>@@ -75,6 +75,6 @@ namespace std _GLIBCXX_VISIBILITY(defaul
> // and std::hash<long double>::operator()
> // are the same, no need to duplicate them.
> extern "C" void _ZNKSt4hashIeEclEe (void)
>- __attribute__((alias ("_ZNKSt3tr14hashIeEclEe")));
>+ _GLIBCXX_PURE __attribute__((alias ("_ZNKSt3tr14hashIeEclEe")));
>
> #endif
>
>
> Jakub
More information about the Libstdc++
mailing list