This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


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

Re: Boost regression testsuite results for the improved new checking code


Hi again,

I investigated a little bit more those two ICEs affecting boost testsuite

> > > libs/random/random_test.cpp * - +
> > > libs/random/random_demo.cpp * - +
> >
> > ICEs both with and without the checker, using current trunk:
> >
> >     ../boost/integer_traits.hpp:137: Internal compiler error in tree_low_cst,
> >       at tree.c:3440

and managed to construct a reduced test case, whose compilation fails in exactly
the same way:

---------

template<class T, T min_val, T max_val>
class integer_traits_base
{
public:
  static const bool is_integral = true;
};

template<class T>
class integer_traits
{
public:
  static const bool is_integral = false;
};

template<>
class integer_traits<long long>
  : public integer_traits_base<long long, (-9223372036854775807LL - 1),
9223372036854775807LL>
{ };

---------


Indeed, Gcc2.95.2 compiles the code.
On Gcc3.1 the problem appear related to the big constants: interestingly if the
testcase is modified by changing the *sign* of both the constant to *positive*, the
compiler isuues "sorry, not implemented: mangling very large integers", otherwise,
an ICE results.

It is worth filing this in GNATS?!?

P.



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