On 17/09/14 16:55 +0200, Marc Glisse wrote:
On Wed, 17 Sep 2014, Jonathan Wakely wrote:
Our <ctgmath> only includes <cmath>, not <ccomplex> as required by
26.8 [c.math] paragraph 1.
Is that intentional?
Probably not (I don't know), but if you change it, please include
<complex> instead of the nonsensical (and equivalent) <ccomplex>. I
hope we can deprecate that one at some point, I would even be in favor
of adding a #warning to it asking why on earth the user decided to
include it.
Done, with the attached patch. Tested x86_64-linux, committed to
trunk.
commit 0e4f9dd61315305e717fce692b63927430de8062
Author: Jonathan Wakely <jwak...@redhat.com>
Date: Thu Oct 2 12:22:14 2014 +0100
* include/c_global/ctgmath: Include <complex>.
* testsuite/26_numerics/headers/ctgmath/complex.cc: New.
* doc/xml/manual/status_cxx2011.xml: Update.
* doc/html/manual/status.html: Regenerate.
diff --git a/libstdc++-v3/doc/xml/manual/status_cxx2011.xml b/libstdc++-v3/doc/xml/manual/status_cxx2011.xml
index b986cad..5b36556 100644
--- a/libstdc++-v3/doc/xml/manual/status_cxx2011.xml
+++ b/libstdc++-v3/doc/xml/manual/status_cxx2011.xml
@@ -2049,13 +2049,10 @@ particular release.
<entry/>
</row>
<row>
- <?dbhtml bgcolor="#B0B0B0" ?>
<entry>26.8</entry>
<entry>C Library</entry>
- <entry>Partial</entry>
- <entry><code><ctgmath></code> doesn't include
- <code><ccomplex></code>
- </entry>
+ <entry>Y</entry>
+ <entry/>
</row>
<row>
<entry>
diff --git a/libstdc++-v3/include/c_global/ctgmath b/libstdc++-v3/include/c_global/ctgmath
index df36263..e05ede5 100644
--- a/libstdc++-v3/include/c_global/ctgmath
+++ b/libstdc++-v3/include/c_global/ctgmath
@@ -35,6 +35,7 @@
# include <bits/c++0x_warning.h>
#else
# include <cmath>
+# include <complex>
#endif
#endif
diff --git a/libstdc++-v3/testsuite/26_numerics/headers/ctgmath/complex.cc b/libstdc++-v3/testsuite/26_numerics/headers/ctgmath/complex.cc
new file mode 100644
index 0000000..160dc1b
--- /dev/null
+++ b/libstdc++-v3/testsuite/26_numerics/headers/ctgmath/complex.cc
@@ -0,0 +1,23 @@
+// Copyright (C) 2014 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+// { dg-options "-std=gnu++11" }
+// { dg-do compile }
+
+#include <ctgmath>
+
+std::complex<double> d;