This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
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.