[all-commits] [llvm/llvm-project] a82944: [libc++] Fix ABI break in __bit_reference.
Eric via All-commits
all-commits at lists.llvm.org
Wed Feb 19 09:02:31 PST 2020
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: a829443cc7359ecf0f2de8f82519f511795675ec
https://github.com/llvm/llvm-project/commit/a829443cc7359ecf0f2de8f82519f511795675ec
Author: Eric Fiselier <eric at efcs.ca>
Date: 2020-02-19 (Wed, 19 Feb 2020)
Changed paths:
M libcxx/include/__bit_reference
A libcxx/test/libcxx/containers/sequences/vector.bool/trivial_for_purposes_of_call.pass.cpp
Log Message:
-----------
[libc++] Fix ABI break in __bit_reference.
The libc++ __bit_iterator type has weird ABI calling conventions as a
quirk
of the implementation. The const bit iterator is trivial, but the
non-const
bit iterator is not because it declares a user-defined copy constructor.
Changing this now is an ABI break, so this test ensures that each type
is trivial/non-trivial as expected.
The definition of 'non-trivial for the purposes of calls':
A type is considered non-trivial for the purposes of calls if:
* it has a non-trivial copy constructor, move constructor, or
destructor, or
* all of its copy and move constructors are deleted.
More information about the All-commits
mailing list