mirror of git://gcc.gnu.org/git/gcc.git
re PR libstdc++/56111 ({float,double,long double} complex not accepted anymore)
2013-02-13 Marc Glisse <marc.glisse@inria.fr> PR libstdc++/56111 * include/std/complex (complex): Undefine. * include/c_compatibility/complex.h (complex): Only undefine if <complex> has been included. * testsuite/26_numerics/complex/56111.cc: New testcase. From-SVN: r196034
This commit is contained in:
parent
9e3a83c18a
commit
1c259e8b49
|
|
@ -1,3 +1,11 @@
|
||||||
|
2013-02-13 Marc Glisse <marc.glisse@inria.fr>
|
||||||
|
|
||||||
|
PR libstdc++/56111
|
||||||
|
* include/std/complex (complex): Undefine.
|
||||||
|
* include/c_compatibility/complex.h (complex): Only undefine if
|
||||||
|
<complex> has been included.
|
||||||
|
* testsuite/26_numerics/complex/56111.cc: New testcase.
|
||||||
|
|
||||||
2013-02-13 François Dumont <fdumont@gcc.gnu.org>
|
2013-02-13 François Dumont <fdumont@gcc.gnu.org>
|
||||||
|
|
||||||
* include/bits/hashtable_policy.h (_Hash_code_base): Restore
|
* include/bits/hashtable_policy.h (_Hash_code_base): Restore
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,10 @@
|
||||||
|
|
||||||
#if _GLIBCXX_HAVE_COMPLEX_H
|
#if _GLIBCXX_HAVE_COMPLEX_H
|
||||||
# include_next <complex.h>
|
# include_next <complex.h>
|
||||||
# undef complex
|
# ifdef _GLIBCXX_COMPLEX
|
||||||
|
// See PR56111, keep the macro in C++03 if possible.
|
||||||
|
# undef complex
|
||||||
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef _GLIBCXX_COMPLEX_H
|
#ifndef _GLIBCXX_COMPLEX_H
|
||||||
|
|
|
||||||
|
|
@ -44,6 +44,9 @@
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
|
|
||||||
|
// Get rid of a macro possibly defined in <complex.h>
|
||||||
|
#undef complex
|
||||||
|
|
||||||
namespace std _GLIBCXX_VISIBILITY(default)
|
namespace std _GLIBCXX_VISIBILITY(default)
|
||||||
{
|
{
|
||||||
_GLIBCXX_BEGIN_NAMESPACE_VERSION
|
_GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,36 @@
|
||||||
|
// { dg-do compile }
|
||||||
|
// { dg-options "-std=c++98" }
|
||||||
|
|
||||||
|
// Copyright (C) 2013 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++/56111
|
||||||
|
// In C++03, we try to keep the macro "complex" as long as it does not
|
||||||
|
// conflict (std::complex).
|
||||||
|
#include <bits/c++config.h>
|
||||||
|
#if _GLIBCXX_HAVE_COMPLEX_H
|
||||||
|
# include <complex.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
#if _GLIBCXX_HAVE_COMPLEX_H
|
||||||
|
double complex x = .5;
|
||||||
|
double complex y = cacos (x);
|
||||||
|
(void)y;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue