[Bug libstdc++/54757] FAIL: ext/random/beta_distribution/cons/default.cc (test for excess errors)
dominiq at lps dot ens.fr
gcc-bugzilla@gcc.gnu.org
Sun Sep 30 12:35:00 GMT 2012
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54757
Dominique d'Humieres <dominiq at lps dot ens.fr> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target|hppa2.0w-hp-hpux11.11 |hppa2.0w-hp-hpux11.11
| |*-*-darwin*
Status|UNCONFIRMED |NEW
Last reconfirmed| |2012-09-30
Host|hppa2.0w-hp-hpux11.11 |hppa2.0w-hp-hpux11.11
| |*-*-darwin*
Ever Confirmed|0 |1
Build|hppa2.0w-hp-hpux11.11 |hppa2.0w-hp-hpux11.11
| |*-*-darwin*
--- Comment #4 from Dominique d'Humieres <dominiq at lps dot ens.fr> 2012-09-30 12:35:12 UTC ---
I also see it on *-*-darwin*. I have silenced the failures by replacing
std:hypot with hypot.
I have tested the example from
http://en.cppreference.com/w/cpp/numeric/math/hypot , i.e.,
#include <cmath>
#include <utility>
#include <iostream>
std::pair<double, double> cartesian_to_polar(double x, double y)
{
return {std::hypot(x, y), std::atan2(y,x)};
}
int main()
{
std::pair<double, double> polar = cartesian_to_polar(1, 1);
std::cout << "(1,1) cartesian is (" << polar.first
<< "," << polar.second<< ") polar\n";
}
which fails to compile on darwin with
[macbook] f90/bug% g++48 -std=c++11 polar.cpp
polar.cpp: In function 'std::pair<double, double> cartesian_to_polar(double,
double)':
polar.cpp:7:13: error: 'hypot' is not a member of 'std'
return {std::hypot(x, y), std::atan2(y,x)};
^
polar.cpp:7:13: note: suggested alternative:
In file included from /usr/include/math.h:28:0,
from /opt/gcc/gcc4.8w/include/c++/4.8.0/cmath:46,
from polar.cpp:1:
/usr/include/architecture/i386/math.h:340:15: note: 'hypot'
extern double hypot ( double, double );
^
polar.cpp:7:46: error: could not convert '{<expression error>, atan2(y, x)}'
from '<brace-enclosed initializer list>' to 'std::pair<double, double>'
return {std::hypot(x, y), std::atan2(y,x)};
^
while it compiles if I replace " return {std::hypot(x, y), std::atan2(y,x)};"
with " return {hypot(x, y), std::atan2(y,x)}; ". Looking at
include/c++/4.8.0/cmath, I don't understand why std::atan2(y,x) is found, but
not std::hypot(x, y).
More information about the Gcc-bugs
mailing list