Boost logo

Boost :

Subject: Re: [boost] [config] [regression] Regression test failures due to compiler bugs -- your advice needed
From: Andrzej Krzemienski (akrzemi1_at_[hidden])
Date: 2015-01-21 16:20:38


2015-01-21 22:14 GMT+01:00 Andrey Semashev <andrey.semashev_at_[hidden]>:

> On Thu, Jan 22, 2015 at 12:10 AM, Andrzej Krzemienski
> <akrzemi1_at_[hidden]> wrote:
> > 2015-01-21 21:56 GMT+01:00 Peter Dimov <lists_at_[hidden]>:
> >>
> >> An optional<T&> that fails silently for certain T's in a quite insidious
> >> way on a wide array of popular compilers, including all versions of
> MSVC,
> >> should perhaps be disabled for those T's outright, instead of the
> failures
> >> being marked. Users do not consult the markup when using optional<> and
> >> even if they did, optional<int const&> is most likely to occur in
> generic
> >> code, not on its own. This will result in some very hard to track bugs.
> >
> > Are you saying that on a compiler where an operation on optional<T&>
> might
> > give wrong run-time result, the operation should be disabled (render a
> > compile-time error)? If so, I agree, and intend to do it at some point.
> But
> > even then I should indicate somehow in regression tests that I expect
> > different results in gcc and in msvc.
>
> What kind of errors are we talking about? Does optional<T&> behave
> plain wrong on MSVC or is there a misbehavior in some narrow case?
> Does it compile invalid code, does it not compile valid one, or is
> there a miscompilation?
>

In most of the cases the program compiles but we have a run-time
misbehavior: we store a reference to an unexpected temporary rather than to
the original object.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk