[Bug libstdc++/86398] [8/9 Regression] is_trivially_constructible always returns true even when is_constructible returns false

redi at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Jul 4 11:44:00 GMT 2018


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86398

--- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Author: redi
Date: Wed Jul  4 11:44:11 2018
New Revision: 262381

URL: https://gcc.gnu.org/viewcvs?rev=262381&root=gcc&view=rev
Log:
PR libstdc++/86398 fix std::is_trivially_constructible regression

The intrinsic doesn't check for allowed conversions between scalar
types, so restore the std::is_constructible check.

Also make some trivial whitespace changes.

        PR libstdc++/86398
        * include/std/type_traits (is_trivially_constructible): Check
        is_constructible before __is_trivially_constructible.
        * testsuite/20_util/is_trivially_constructible/value.cc: Add more
        tests, including negative cases.
        * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Use
        zero for dg-error lineno.
        * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
        Likewise.

Modified:
    branches/gcc-8-branch/libstdc++-v3/ChangeLog
    branches/gcc-8-branch/libstdc++-v3/include/std/type_traits
   
branches/gcc-8-branch/libstdc++-v3/testsuite/20_util/is_trivially_constructible/value.cc
   
branches/gcc-8-branch/libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs_neg.cc
   
branches/gcc-8-branch/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc


More information about the Gcc-bugs mailing list