• 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
..
assembler-ia32-inl.h Loading commit data...
assembler-ia32.cc Loading commit data...
assembler-ia32.h Loading commit data...
code-stubs-ia32.cc Loading commit data...
codegen-ia32.cc Loading commit data...
cpu-ia32.cc Loading commit data...
deoptimizer-ia32.cc Loading commit data...
disasm-ia32.cc Loading commit data...
frame-constants-ia32.cc Loading commit data...
frame-constants-ia32.h Loading commit data...
interface-descriptors-ia32.cc Loading commit data...
macro-assembler-ia32.cc Loading commit data...
macro-assembler-ia32.h Loading commit data...
simulator-ia32.cc Loading commit data...
simulator-ia32.h Loading commit data...
sse-instr.h Loading commit data...