This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug libstdc++/79017] New: Old PowerMac G5, MacPorts GCC 5.4, C++11 and "std::log2 has not been declared"


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79017

            Bug ID: 79017
           Summary: Old PowerMac G5, MacPorts GCC 5.4, C++11 and
                    "std::log2 has not been declared"
           Product: gcc
           Version: 5.4.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libstdc++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: noloader at gmail dot com
  Target Milestone: ---

I'm working on a PowerMac G5. It runs OS X 10.5.8. It has MacPorts installed
for updated gear.

The program:

$ cat test.cxx
#include <cmath>
int main(int argc, char* argv[])
{
    double d = std::log2(2.3456789f);
    return 0;
}

Results:

$ /opt/local/bin/g++-mp-5 -std=c++11 test.cxx -o test.exe
test.cxx: In function 'int main(int, char**)':
test.cxx:4:16: error: 'log2' is not a member of 'std'
     double d = std::log2(2.3456789f);
                ^
test.cxx:4:16: note: suggested alternative:
In file included from /usr/include/math.h:26:0,
                 from /opt/local/include/gcc5/c++/cmath:44,
                 from test.cxx:1:
/usr/include/architecture/ppc/math.h:431:15: note:   'log2'
 extern double log2( double );
               ^

Compiler:

$ /opt/local/bin/g++-mp-5 --version
g++-mp-5 (MacPorts gcc5 5.4.0_0) 5.4.0
Copyright (C) 2015 Free Software Foundation, Inc.
...

***************

From JW offlist:

#include <math.h>
int main() {
          typedef double_t  my_double_t;
          typedef float_t   my_float_t;
          acosh(0.0);
          acoshf(0.0f);
          acoshl(0.0l);
          asinh(0.0);
          asinhf(0.0f);
          asinhl(0.0l);
          atanh(0.0);
          atanhf(0.0f);
          atanhl(0.0l);
          cbrt(0.0);
          cbrtf(0.0f);
          cbrtl(0.0l);
          copysign(0.0, 0.0);
          copysignf(0.0f, 0.0f);
          copysignl(0.0l, 0.0l);
          erf(0.0);
          erff(0.0f);
          erfl(0.0l);
          erfc(0.0);
          erfcf(0.0f);
          erfcl(0.0l);
          exp2(0.0);
          exp2f(0.0f);
          exp2l(0.0l);
          expm1(0.0);
          expm1f(0.0f);
          expm1l(0.0l);
          fdim(0.0, 0.0);
          fdimf(0.0f, 0.0f);
          fdiml(0.0l, 0.0l);
          fma(0.0, 0.0, 0.0);
          fmaf(0.0f, 0.0f, 0.0f);
          fmal(0.0l, 0.0l, 0.0l);
          fmax(0.0, 0.0);
          fmaxf(0.0f, 0.0f);
          fmaxl(0.0l, 0.0l);
          fmin(0.0, 0.0);
          fminf(0.0f, 0.0f);
          fminl(0.0l, 0.0l);
          hypot(0.0, 0.0);
          hypotf(0.0f, 0.0f);
          hypotl(0.0l, 0.0l);
          ilogb(0.0);
          ilogbf(0.0f);
          ilogbl(0.0l);
          lgamma(0.0);
          lgammaf(0.0f);
          lgammal(0.0l);
          llrint(0.0);
          llrintf(0.0f);
          llrintl(0.0l);
          llround(0.0);
          llroundf(0.0f);
          llroundl(0.0l);
          log1p(0.0);
          log1pf(0.0f);
          log1pl(0.0l);
          log2(0.0);
          log2f(0.0f);
          log2l(0.0l);
          logb(0.0);
          logbf(0.0f);
          logbl(0.0l);
          lrint(0.0);
          lrintf(0.0f);
          lrintl(0.0l);
          lround(0.0);
          lroundf(0.0f);
          lroundl(0.0l);
          nan(0);
          nanf(0);
          nanl(0);
          nearbyint(0.0);
          nearbyintf(0.0f);
          nearbyintl(0.0l);
          nextafter(0.0, 0.0);
          nextafterf(0.0f, 0.0f);
          nextafterl(0.0l, 0.0l);
          nexttoward(0.0, 0.0);
          nexttowardf(0.0f, 0.0f);
          nexttowardl(0.0l, 0.0l);
          remainder(0.0, 0.0);
          remainderf(0.0f, 0.0f);
          remainderl(0.0l, 0.0l);
          remquo(0.0, 0.0, 0);
          remquof(0.0f, 0.0f, 0);
          remquol(0.0l, 0.0l, 0);
          rint(0.0);
          rintf(0.0f);
          rintl(0.0l);
          round(0.0);
          roundf(0.0f);
          roundl(0.0l);
          scalbln(0.0, 0l);
          scalblnf(0.0f, 0l);
          scalblnl(0.0l, 0l);
          scalbn(0.0, 0);
          scalbnf(0.0f, 0);
          scalbnl(0.0l, 0);
          tgamma(0.0);
          tgammaf(0.0f);
          tgammal(0.0l);
          trunc(0.0);
          truncf(0.0f);
          truncl(0.0l);
          return 0;
}

Results in:

$ /opt/local/bin/g++-mp-5 -std=c++11 test.cxx -o test.exe
test.cxx: In function 'int main()':
test.cxx:53:21: error: 'llrint' was not declared in this scope
           llrint(0.0);
                     ^
test.cxx:54:23: error: 'llrintf' was not declared in this scope
           llrintf(0.0f);
                       ^
test.cxx:55:23: error: 'llrintl' was not declared in this scope
           llrintl(0.0l);
                       ^
test.cxx:56:22: error: 'llround' was not declared in this scope
           llround(0.0);
                      ^
test.cxx:57:24: error: 'llroundf' was not declared in this scope
           llroundf(0.0f);
                        ^
test.cxx:58:24: error: 'llroundl' was not declared in this scope
           llroundl(0.0l);
                        ^

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]