• Clemens Hammacher's avatar
    Fix is_trivially_copyable check for MSVC and older stdlibc++ · 9dd6f0d0
    Clemens Hammacher authored
    MSVC 2015 and 2017 implement std::is_trivially_copyable, but not
    correctly. Hence, reimplement it using more low-level primitives.
    
    For stdlibc++ versions below 5.0, we already have a workaround for the
    missing support of std::is_trivially_copyable, but this is an unsound
    approximation, because it is ignoring move constructor, move assignment
    and copy assignment. Therefore, do not use this approximation for
    asserting trivial copyability of a type.
    
    Finally, add unittests for the new is_trivially_copyable
    implementations.
    
    R=mstarzinger@chromium.org
    CC=loorongjie@gmail.com
    
    Change-Id: I9ee56a65882e8c94b72c9a2d484edd27963a5d89
    Reviewed-on: https://chromium-review.googlesource.com/941521Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
    Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#51651}
    9dd6f0d0
Name
Last commit
Last update
..
benchmarks Loading commit data...
cctest Loading commit data...
common Loading commit data...
debugger Loading commit data...
fuzzer Loading commit data...
inspector Loading commit data...
intl Loading commit data...
js-perf-test Loading commit data...
memory Loading commit data...
message Loading commit data...
mjsunit Loading commit data...
mkgrokdump Loading commit data...
mozilla Loading commit data...
preparser Loading commit data...
test262 Loading commit data...
unittests Loading commit data...
wasm-spec-tests Loading commit data...
webkit Loading commit data...
BUILD.gn Loading commit data...
bot_default.isolate Loading commit data...
d8_default.isolate Loading commit data...
default.isolate Loading commit data...
optimize_for_size.isolate Loading commit data...
perf.isolate Loading commit data...