Hi,
On 21 September 2016 at 21:42, Ville Voutilainen <ville.voutilai...@gmail.com> wrote: > On 21 September 2016 at 12:31, Jonathan Wakely <jwak...@redhat.com> wrote: >> On 06/09/16 09:00 +0300, Ville Voutilainen wrote: >>> >>> PR libstdc++/77288 >>> * include/std/optional (__is_optional_impl, __is_optional): Remove. >>> (__converts_from_optional, __assigns_from_optional): New. >>> (optional(_Up&&)): Use is_same instead of __is_optional. >>> (optional(const optional<_Up>&)): Constrain with >>> __converts_from_optional. >>> (optional(optional<_Up>&&)): Likewise. >>> (operator=(_Up&&)): Use is_same instead of __is_optional, check >>> is_same and is_scalar. >>> (operator=(const optional<_Up>&)): Constrain with >>> __converts_from_optional and __assigns_from_optional. >>> (operator=(optional<_Up>&&)): Likewise. >>> * testsuite/20_util/optional/77288.cc: New. >>> * testsuite/20_util/optional/cons/value.cc: Adjust. >> >> >> OK for trunk, thanks. > > Thanks, applied - I will cook up a separate patch for making the same > fix for experimental::optional. > The plan is to then backport that one to the gcc-6 branch. The new test 77288.cc fails on old arm targets (armv5t): /aci-gcc-fsf/sources/gcc-fsf/gccsrc/libstdc++-v3/testsuite/20_util/optional/77288.cc: In function 'void test01()': /aci-gcc-fsf/sources/gcc-fsf/gccsrc/libstdc++-v3/testsuite/20_util/optional/77288.cc:31: error: 'exception_ptr' is not a member of 'std' /aci-gcc-fsf/sources/gcc-fsf/gccsrc/libstdc++-v3/testsuite/20_util/optional/77288.cc:31: error: template argument 1 is invalid /aci-gcc-fsf/sources/gcc-fsf/gccsrc/libstdc++-v3/testsuite/20_util/optional/77288.cc:31: error: template argument 1 is invalid /aci-gcc-fsf/sources/gcc-fsf/gccsrc/libstdc++-v3/testsuite/20_util/optional/77288.cc:32: error: 'exception_ptr' is not a member of 'std' /aci-gcc-fsf/sources/gcc-fsf/gccsrc/libstdc++-v3/testsuite/20_util/optional/77288.cc:32: error: template argument 1 is invalid Christophe