This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
l'0514 libstdc++ fails building powerpc/limitsMEMBERS.cc on rs6000-ibm-aix4.2.0.0
- To: libstdc++ at gcc dot gnu dot org, gcc-bugs at gcc dot gnu dot org
- Subject: l'0514 libstdc++ fails building powerpc/limitsMEMBERS.cc on rs6000-ibm-aix4.2.0.0
- From: rbrown64 at csc dot com dot au
- Date: Fri, 18 May 2001 22:16:37 +1000
make[8]: Entering directory `/devel/tmp/gcc-20010514.obj/rs6000-ibm-aix4.2.0.0/powerpc/libstdc++-v3/src'
/bin/sh ../libtool --tag CXX --mode=compile /devel/tmp/gcc-20010514.obj/gcc/xgcc -B/devel/tmp/gcc-20010514.obj/gcc/ -nostdinc++
-L/devel/tmp/gcc-20010514.obj/rs6000-ibm-aix4.2.0.0/powerpc/libstdc++-v3/src
-L/devel/tmp/gcc-20010514.obj/rs6000-ibm-aix4.2.0.0/powerpc/libstdc++-v3/src/.libs -B/usr/local/rs6000-ibm-aix4.2.0.0/bin/
-B/usr/local/rs6000-ibm-aix4.2.0.0/lib/ -isystem /usr/local/rs6000-ibm-aix4.2.0.0/include -mcpu=powerpc -nostdinc++
-I../../../../../gcc-20010514/libstdc++-v3/include -I../../../../../gcc-20010514/libstdc++-v3/include/std
-I../../../../../gcc-20010514/libstdc++-v3/include/c_std -I../include -I../../../../../gcc-20010514/libstdc++-v3/libsupc++ -I../libio
-I../../../../../gcc-20010514/libstdc++-v3/libio -I../../../../../gcc-20010514/libstdc++-v3/libmath -g -O2 -mcpu=powerpc
-fno-implicit-templates -Wall -Wno-format -W -Wwrite-strings -Winline -fdiagnostics-show-location=once -g -c limitsMEMBERS.cc
mkdir .libs
/devel/tmp/gcc-20010514.obj/gcc/xgcc -B/devel/tmp/gcc-20010514.obj/gcc/ -nostdinc++
-L/devel/tmp/gcc-20010514.obj/rs6000-ibm-aix4.2.0.0/powerpc/libstdc++-v3/src
-L/devel/tmp/gcc-20010514.obj/rs6000-ibm-aix4.2.0.0/powerpc/libstdc++-v3/src/.libs -B/usr/local/rs6000-ibm-aix4.2.0.0/bin/
-B/usr/local/rs6000-ibm-aix4.2.0.0/lib/ -isystem /usr/local/rs6000-ibm-aix4.2.0.0/include -mcpu=powerpc -nostdinc++
-I../../../../../gcc-20010514/libstdc++-v3/include -I../../../../../gcc-20010514/libstdc++-v3/include/std
-I../../../../../gcc-20010514/libstdc++-v3/include/c_std -I../include -I../../../../../gcc-20010514/libstdc++-v3/libsupc++ -I../libio
-I../../../../../gcc-20010514/libstdc++-v3/libio -I../../../../../gcc-20010514/libstdc++-v3/libmath -g -O2 -mcpu=powerpc -fno-implicit-templates -Wall
-Wno-format -W -Wwrite-strings -Winline -fdiagnostics-show-location=once -g -c limitsMEMBERS.cc -DPIC -o .libs/limitsMEMBERS.o
limitsMEMBERS.cc:38: semicolon missing after declaration of
`std::numeric_limits<bool>'
limitsMEMBERS.cc:38: parse error before `namespace'
limitsMEMBERS.cc:38: ISO C++ forbids defining types within return type
limitsMEMBERS.cc:38: syntax error before `{' token
limitsMEMBERS.cc:59: `const bool std::numeric_limits<bool>::traps' is not a
static member of `struct std::numeric_limits<bool>'
limitsMEMBERS.cc:59: uninitialized const `std::numeric_limits<bool>::traps'
limitsMEMBERS.cc:60: `const bool std::numeric_limits<bool>::tinyness_before' is
not a static member of `struct std::numeric_limits<bool>'
limitsMEMBERS.cc:60: uninitialized const
`std::numeric_limits<bool>::tinyness_before'
limitsMEMBERS.cc:61: `const std::float_round_style
std::numeric_limits<bool>::round_style' is not a static member of `struct
std::numeric_limits<bool>'
limitsMEMBERS.cc:61: uninitialized const
`std::numeric_limits<bool>::round_style'
make[8]: *** [limitsMEMBERS.lo] Error 1
make[8]: Leaving directory `/devel/tmp/gcc-20010514.obj/rs6000-ibm-aix4.2.0.0/powerpc/libstdc++-v3/src'
find . -name 'limitsM*.o' -print | xargs sum
49624 66 ./rs6000-ibm-aix4.2.0.0/libstdc++-v3/src/.libs/limitsMEMBERS.o
58320 66 ./rs6000-ibm-aix4.2.0.0/soft-float/libstdc++-v3/src/.libs/limitsMEMBERS.o
29453 66 ./rs6000-ibm-aix4.2.0.0/power/libstdc++-v3/src/.libs/limitsMEMBERS.o
$ find . -name 'limitsM*.cc' -print | xargs sum
31671 17 ./rs6000-ibm-aix4.2.0.0/libstdc++-v3/src/limitsMEMBERS.cc
31671 17 ./rs6000-ibm-aix4.2.0.0/soft-float/libstdc++-v3/src/limitsMEMBERS.cc
31671 17 ./rs6000-ibm-aix4.2.0.0/soft-float/power/libstdc++-v3/src/limitsMEMBERS.cc
39758 3 ./rs6000-ibm-aix4.2.0.0/soft-float/powerpc/libstdc++-v3/src/limitsMEMBERS.cc
31671 17 ./rs6000-ibm-aix4.2.0.0/power/libstdc++-v3/src/limitsMEMBERS.cc
39758 3 ./rs6000-ibm-aix4.2.0.0/powerpc/libstdc++-v3/src/limitsMEMBERS.cc
The smaller limitsMEMBERS.cc in the powerpc directories are lacking the
declarations for
{,signed ,unsigned }char
{,unsigned }short
{,unsigned }int
{,unsigned }long
float
{,long }double
32 //
33 // ISO C++ 14882:1998
34 // 18.2.1
35 //
36
37 #include <bits/std_limits.h>
38 namespace std {
39
40 const bool numeric_limits<bool>::is_specialized;
41 const int numeric_limits<bool>::digits;
42 const int numeric_limits<bool>::digits10;
# limitsMEMBERS.ii
# 37 "limitsMEMBERS.cc"
# 1 "../include/bits/std_limits.h" 1
# 45 "../include/bits/std_limits.h"
# 1 "../include/bits/c++config.h" 1
# 34 "../include/bits/c++config.h"
# 1 "../include/bits/os_defines.h" 1
# 35 "../include/bits/c++config.h" 2
# 46 "../include/bits/std_limits.h" 2
# 1 "../../../../../gcc-20010514/libstdc++-v3/include/c_std/bits/std_cfloat.h" 1
# 40 "../../../../../gcc-20010514/libstdc++-v3/include/c_std/bits/std_cfloat.h" 3
# 1 "/usr/include/float.h" 1 3 4
# 36 "/usr/include/float.h" 3 4
# 1 "/usr/include/standards.h" 1 3 4
# 37 "/usr/include/float.h" 2 3 4
# 201 "/usr/include/float.h" 3 4
# 1 "/usr/include/sys/limits.h" 1 3 4
# 202 "/usr/include/float.h" 2 3 4
extern unsigned int SINFINITY;
extern unsigned int _DBLINF[2];
extern unsigned int SQNAN;
extern unsigned int DQNAN[2];
extern unsigned int SSNAN;
extern unsigned int DSNAN[2];
# 237 "/usr/include/float.h" 3 4
typedef unsigned short fprnd_t;
# 246 "/usr/include/float.h" 3 4
fprnd_t fp_read_rnd(void);
fprnd_t fp_swap_rnd(fprnd_t rnd);
# 41 "../../../../../gcc-20010514/libstdc++-v3/include/c_std/bits/std_cfloat.h" 2 3
# 47 "../include/bits/std_limits.h" 2
namespace std {
enum float_round_style {
round_indeterminate = -1,
round_toward_zero = 0,
round_to_nearest = 1,
round_toward_infinity = 2,
round_toward_neg_infinity = 3
};
enum float_denorm_style {
denorm_indeterminate = -1,
denorm_absent = 0,
denorm_present = 1
};
template<typename _Tp> struct numeric_limits {
static const bool is_specialized = false;
static _Tp min() throw() { return static_cast<_Tp>(0); }
static _Tp max() throw() { return static_cast<_Tp>(0); }
static const int digits = 0;
static const int digits10 = 0;
static const bool is_signed = false;
static const bool is_integer = false;
static const bool is_exact = false;
static const int radix = 0;
static _Tp epsilon() throw() { return static_cast<_Tp>(0); }
static _Tp round_error() throw() { return static_cast<_Tp>(0); }
static const int min_exponent = 0;
static const int min_exponent10 = 0;
static const int max_exponent = 0;
static const int max_exponent10 = 0;
static const bool has_infinity = false;
static const bool has_quiet_NaN = false;
static const bool has_signaling_NaN = false;
static const float_denorm_style has_denorm = denorm_absent;
static const bool has_denorm_loss = false;
static _Tp infinity() throw() { return static_cast<_Tp>(0); }
static _Tp quiet_NaN() throw() { return static_cast<_Tp>(0); }
static _Tp signaling_NaN() throw() { return static_cast<_Tp>(0); }
static _Tp denorm_min() throw() { return static_cast<_Tp>(0); }
static const bool is_iec559 = false;
static const bool is_bounded = false;
static const bool is_modulo = false;
static const bool traps = false;
static const bool tinyness_before = false;
static const float_round_style round_style = round_toward_zero;
};
template<typename _Tp> _Tp __limits_infinity();
template<typename _Tp> _Tp __limits_quiet_NaN();
template<typename _Tp> _Tp __limits_signaling_NaN();
template<typename _Tp> _Tp __limits_denorm_min();
template<> struct numeric_limits<bool> {
static const bool is_specialized = true;
static bool min() throw()
{ return false; }
static bool max() throw()
{ return true; }
static const int digits = 8;
static const int digits10 = 2;
static const bool is_signed = false;
static const bool is_integer = true;
static const bool is_exact = true;
static const int radix = 2;
static bool epsilon() throw()
{ return 0; }
static bool round_error() throw()
{ return 0; }
static const int min_exponent = 0;
static const int min_exponent10 = 0;
static const int max_exponent = 0;
static const int max_exponent10 = 0;
static const bool has_infinity = false;
static const bool has_quiet_NaN = false;
static const bool has_signaling_NaN = false;
static const float_denorm_style has_denorm = denorm_absent;
static const bool has_denorm_loss = false;
static bool infinity() throw()
{ return static_cast<bool>(0); }
static bool quiet_NaN() throw()
{ return static_cast<bool>(0); }
static bool signaling_NaN() throw()
{ return static_cast<bool>(0); }
static bool denorm_min() throw()
{ return static_cast<bool>(0); }
static const bool is_iec559 = true;
static const bool is_bounded = true;
static const bool is_modulo = true;
}
# 38 "limitsMEMBERS.cc" 2
namespace std {
const bool numeric_limits<bool>::is_specialized;
const int numeric_limits<bool>::digits;
const int numeric_limits<bool>::digits10;
const bool numeric_limits<bool>::is_signed;
const bool numeric_limits<bool>::is_integer;
const bool numeric_limits<bool>::is_exact;
const int numeric_limits<bool>::radix;
const int numeric_limits<bool>::min_exponent;
const int numeric_limits<bool>::min_exponent10;
const int numeric_limits<bool>::max_exponent;
const int numeric_limits<bool>::max_exponent10;
const bool numeric_limits<bool>::has_infinity;
const bool numeric_limits<bool>::has_quiet_NaN;
const bool numeric_limits<bool>::has_signaling_NaN;
const float_denorm_style numeric_limits<bool>::has_denorm;
const bool numeric_limits<bool>::has_denorm_loss;
const bool numeric_limits<bool>::is_iec559;
const bool numeric_limits<bool>::is_bounded;
const bool numeric_limits<bool>::is_modulo;
const bool numeric_limits<bool>::traps;
const bool numeric_limits<bool>::tinyness_before;
const float_round_style numeric_limits<bool>::round_style;
}