mirror of git://gcc.gnu.org/git/gcc.git
re PR libstdc++/54112 (including complex.h and complex fails in C++03)
2012-08-13 Marc Glisse <marc.glisse@inria.fr> PR libstdc++/54112 * include/c_compatibility/complex.h: Undefine complex, always include system's complex.h if present. * testsuite/26_numerics/complex/c99.cc: New testcase. * testsuite/17_intro/headers/c++1998/complex.cc: Likewise. * doc/xml/manual/numerics.xml: Document it. From-SVN: r190340
This commit is contained in:
parent
61f7b9ae93
commit
6a9573cc7b
|
|
@ -1,3 +1,12 @@
|
||||||
|
2012-08-13 Marc Glisse <marc.glisse@inria.fr>
|
||||||
|
|
||||||
|
PR libstdc++/54112
|
||||||
|
* include/c_compatibility/complex.h: Undefine complex, always
|
||||||
|
include system's complex.h if present.
|
||||||
|
* testsuite/26_numerics/complex/c99.cc: New testcase.
|
||||||
|
* testsuite/17_intro/headers/c++1998/complex.cc: Likewise.
|
||||||
|
* doc/xml/manual/numerics.xml: Document it.
|
||||||
|
|
||||||
2012-08-12 Jonathan Wakely <jwakely.gcc@gmail.com>
|
2012-08-12 Jonathan Wakely <jwakely.gcc@gmail.com>
|
||||||
|
|
||||||
PR libstdc++/52681
|
PR libstdc++/52681
|
||||||
|
|
|
||||||
|
|
@ -44,6 +44,11 @@
|
||||||
prints <code>(u,v)</code> and <code>op>></code> can read <code>u</code>,
|
prints <code>(u,v)</code> and <code>op>></code> can read <code>u</code>,
|
||||||
<code>(u)</code>, and <code>(u,v)</code>.
|
<code>(u)</code>, and <code>(u,v)</code>.
|
||||||
</para>
|
</para>
|
||||||
|
<para>As an extension to C++11 and for increased compatibility with C,
|
||||||
|
<code><complex.h></code> includes both <code><complex></code>
|
||||||
|
and the C99 <code><complex.h></code> (if the C library provides
|
||||||
|
it).
|
||||||
|
</para>
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
</section>
|
</section>
|
||||||
|
|
|
||||||
|
|
@ -30,10 +30,11 @@
|
||||||
|
|
||||||
#ifdef __GXX_EXPERIMENTAL_CXX0X__
|
#ifdef __GXX_EXPERIMENTAL_CXX0X__
|
||||||
# include <ccomplex>
|
# include <ccomplex>
|
||||||
#else
|
#endif
|
||||||
# if _GLIBCXX_HAVE_COMPLEX_H
|
|
||||||
# include_next <complex.h>
|
#if _GLIBCXX_HAVE_COMPLEX_H
|
||||||
# endif
|
# include_next <complex.h>
|
||||||
|
# undef complex
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef _GLIBCXX_COMPLEX_H
|
#ifndef _GLIBCXX_COMPLEX_H
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,26 @@
|
||||||
|
// { dg-do compile }
|
||||||
|
|
||||||
|
// Copyright (C) 2012 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/>.
|
||||||
|
|
||||||
|
// libstdc++/54112
|
||||||
|
#include <bits/c++config.h>
|
||||||
|
#if _GLIBCXX_HAVE_COMPLEX_H
|
||||||
|
# include <complex.h>
|
||||||
|
#endif
|
||||||
|
#include <tr1/complex>
|
||||||
|
std::complex<double> x;
|
||||||
|
|
@ -0,0 +1,36 @@
|
||||||
|
// { dg-do compile }
|
||||||
|
// { dg-options "-std=gnu++11" }
|
||||||
|
|
||||||
|
// Copyright (C) 2012 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/>.
|
||||||
|
|
||||||
|
// libstdc++/54112
|
||||||
|
#include <bits/c++config.h>
|
||||||
|
#if _GLIBCXX_HAVE_COMPLEX_H
|
||||||
|
# include <complex.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
bool test __attribute__((unused)) = true;
|
||||||
|
|
||||||
|
#if _GLIBCXX_HAVE_COMPLEX_H
|
||||||
|
double _Complex x = .5;
|
||||||
|
double _Complex y = cacos (x);
|
||||||
|
(void)y;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue