[Bug libstdc++/89402] New: warning: ‘void _ZNKSt4hashIeEclEe()’ specifies less restrictive attribute than its target

ubizjak at gmail dot com gcc-bugzilla@gcc.gnu.org
Tue Feb 19 14:57:00 GMT 2019


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89402

            Bug ID: 89402
           Summary: warning: ‘void _ZNKSt4hashIeEclEe()’ specifies less
                    restrictive attribute than its target
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libstdc++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: ubizjak at gmail dot com
  Target Milestone: ---

When building the compiler, I got:

/space/homedirs/uros/gcc-svn/trunk/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]

In libstdc++-v3/src/c++98/compatibility-ldbl.cc, we have:

// std::tr1::hash<long double>::operator()
// and std::hash<long double>::operator()
// are the same, no need to duplicate them.
extern "C" void _ZNKSt4hashIeEclEe (void)
  __attribute__((alias ("_ZNKSt3tr14hashIeEclEe")));

so, probably just the case of a missing attribute on alias.


More information about the Gcc-bugs mailing list