This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Re: [PATCH] Fix libstdc++-v3/include/math.h:66:1 2: error: 'constexpr bool std::isnan(double)' conflicts with a previous declaration
- From: Jonathan Wakely <jwakely at redhat dot com>
- To: John David Anglin <dave dot anglin at bell dot net>
- Cc: Gerald Pfeifer <gerald at pfeifer dot com>, gcc-patches at gcc dot gnu dot org, libstdc++ at gcc dot gnu dot org, Jonathan Wakely <jwakely dot gcc at gmail dot com>
- Date: Thu, 4 Feb 2016 22:41:37 +0000
- Subject: Re: [PATCH] Fix libstdc++-v3/include/math.h:66:1 2: error: 'constexpr bool std::isnan(double)' conflicts with a previous declaration
- Authentication-results: sourceware.org; auth=none
- References: <83B5E03D-B776-49BE-B1C2-23E19D8E9410 at bell dot net> <20160128104655 dot GY15084 at redhat dot com> <alpine dot LSU dot 2 dot 20 dot 1602042306080 dot 3697 at anthias> <56B3D150 dot 8070308 at bell dot net>
On 04/02/16 17:31 -0500, John David Anglin wrote:
On 2016-02-04 5:11 PM, Gerald Pfeifer wrote:
In file included from .././../gcc-6-20160131/gcc/genautomata.c:116:0:
/wrkdirs/usr/ports/lang/gcc6-devel/work/gcc-6-20160131/libstdc++-v3/include/c_compatibility/math.h:65:12:
error: 'constexpr bool std::isinf(double)' conflicts with a previous declaration
using std::isinf;
^~~~~
See
http://beefy2.nyi.freebsd.org/data/93amd64-default/408008/logs/gcc6-devel-6.0.0.s20160131.log
for a full log.
The checks for obsolete isinf(double) and isnan(double) are not run on
freebsd. Apparently,
the checks in acinclude.m4 need to be run on freebsd as well. Maybe
the checks should run almost
everywhere?
Yes, maybe. I didn't realise those functions were so widespread, but
if they are I'm amazed more people weren't yelling about
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=48891
The problem wasn't introduced by my change but earlier by Jonathan. I
added hpux to the list
of systems with obsolete defines. The default is to assume there are
no obsolete defines.
I think it should be harmless to run the checks on all systems. If
they don't have obsolete defines we'll detect that. If they do things
will start working.