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



I'm glad to be finding these.  When I made the old->new switch, the checks
that were flawed stayed flawed.  Only the syntax changed.  (I think I
disabled one check out of about 360 during the change.)


On Sat, Apr 14, 2001 at 01:09:38AM +0200, Peter Schmid wrote:
> There are nine failures when the regression test suite from the boost
> repository version 1.21.1 is run employing g++ version 3.1 20010413 as the
> c++ compiler. g++ does not compile the following source files:
> 
> libs/functional/function_test.cpp +

The semantics of one of the checks being done inside std::transform were
incorrect.  That particular check is commented out for now.  I'll check in
the change tomorrow morning.

> libs/integer/integer_traits_test.cpp * - +

This involves a homegrown stdint.h header which is designed for C99, not C++,
and is commented as such.  It looks as though "intmax_t" is being typedef'd
to something wrong.  I can't tell what exactly, but my guess is 'long long'.
Support for long long is deduced as /on/ in that header, and deduced as /off/
in boost_concept_check.h.  When the SignedIntegerConcept is instantiated
for intmax_t (probably long long), we have no such specialization.

We deduce support as off in boost_concept_check.h because the
_GLIBCPP_USE_LONG_LONG macro is not defined.

> 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

I'll be re-running the Boost regression suite again later, of course.

> libs/regex/demo/regress/regex_test.cpp +

[24.1.5] Table 76, requirements for random access iterators:  they need
to be comparble with <, >, <=, and >=.  The debug_iterator<> defined in
boost/libs/regex/demo/regress/regress.h doesn't define those operators.
It defines just about everything else, though.

There're also about fifty billion warnings on

    ../boost/re_detail/regex_match.hpp:1167: warning: enumeral and
      non-enumeral type in conditional expression

which is always fun to wade through.  :-)

> libs/regex/demo/regress/wregex_test.cpp +

Ditto.

> libs/utility/call_traits_test.cpp * - +

References to references are currently not valid.  I think Stroustrup has
a defect report in on this.

> libs/utility/counting_iterator_test.cpp - +

This fails with checking on because of the SignedIntegerConcept check on
their homegrown 'intmax_t', same as above.

It's also instantiating "std::iterator_traits<long long int>", which can't
be healthy.


> libs/utility/iterator_traits_test.cpp - +

my_iterator1, my_iterator2, and my_iterator3 don't have a default
constructor.  Hmmm.


Phil

-- 
pedwards at disaster dot jaj dot com  |  pme at sources dot redhat dot com
devphil at several other less interesting addresses in various dot domains
The gods do not protect fools.  Fools are protected by more capable fools.


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