Date: Thu, 25 Jul 2013 20:19:48 +0200 From: Tijl Coosemans <tijl@coosemans.org> To: David Chisnall <theraven@FreeBSD.org> Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r253563 - head/contrib/libstdc++/include/c_std Message-ID: <20130725201948.2f5ae808@kalimero.tijl.coosemans.org> In-Reply-To: <201307231023.r6NANhGf065713@svn.freebsd.org> References: <201307231023.r6NANhGf065713@svn.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--Sig_/9brOvKNWdGkshkv=nffU6_R Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable On Tue, 23 Jul 2013 10:23:43 +0000 (UTC) David Chisnall wrote: > Author: theraven > Date: Tue Jul 23 10:23:43 2013 > New Revision: 253563 > URL: http://svnweb.freebsd.org/changeset/base/253563 >=20 > Log: > Add isnan() and isinf() to the global namespace in libstdc++'s <cmath>. > =20 > The standard (n3242, section 17.6.1.1, paragraph 4) says that, because = these are > declared as macros in the C specification (even though they are > implemented as functions in the C++ library) they should be in the glob= al > namespace. > =20 > A surprising number of configure checks rely on this. It was broken by= recent > cleanups to math.h. >=20 > Modified: > head/contrib/libstdc++/include/c_std/std_cmath.h >=20 > Modified: head/contrib/libstdc++/include/c_std/std_cmath.h > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/contrib/libstdc++/include/c_std/std_cmath.h Tue Jul 23 05:11:22 = 2013 (r253562) > +++ head/contrib/libstdc++/include/c_std/std_cmath.h Tue Jul 23 10:23:43 = 2013 (r253563) > @@ -589,6 +589,8 @@ _GLIBCXX_BEGIN_NAMESPACE(std) > { return ::__gnu_cxx::__capture_isunordered(__f1, __f2); } > =20 > _GLIBCXX_END_NAMESPACE > +using std::isnan; > +using std::isinf; > =20 > #endif /* _GLIBCXX_USE_C99_FP_MACROS_DYNAMIC */ > #endif Doesn't this violate C++98/C++03? The quote above is for C++11. I think the real issue here is that isnan/isinf functions were completely removed from math.h instead of just hidden for C++11 (with some #if). This also broke compilation of C code with -D_XOPEN_SOURCE=3D500. --Sig_/9brOvKNWdGkshkv=nffU6_R Content-Type: application/pgp-signature; name=signature.asc Content-Disposition: attachment; filename=signature.asc -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.20 (FreeBSD) iF4EAREIAAYFAlHxbEgACgkQfoCS2CCgtisfDgD/aw+jKaLh4dMzFZp5ytu1Wh0A 1Vq0Rex2lSH3uc6hAagA/RxtmddWxxg2v4gbXybZRd/w7uTS1C0hRlQ679+NF1V4 =OwSC -----END PGP SIGNATURE----- --Sig_/9brOvKNWdGkshkv=nffU6_R--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20130725201948.2f5ae808>