Use casts in _Atomic_reinterpret_as for integral and pointer types. #227
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Resolves #85 / DevCom-706195
Description
Casey applying the new atomic implementation fixed us breaking the strict aliasing rules, but the memcpy is causing a code size regression for non-
/Oi
customers. This change should restore code size for the most common uses of atomic, which areatomic<integral>
andatomic<pointer>
.Checklist
If you're unsure about a box, leave it unchecked. A maintainer will help you.
community PRs will be delayed until the test and CI systems are online.
_Ugly
as perhttps://eel.is/c++draft/lex.name#3.1 or there are no product code changes.
members, adding virtual functions, changing whether a type is an aggregate
or trivially copyable, etc.).
the C++ Working Draft as a reference (and any other cited standards).
If they were derived from a project that's already listed in NOTICE.txt,
that's fine, but please mention it. If they were derived from any other
project (including Boost and libc++, which are not yet listed in
NOTICE.txt), you must mention it here, so we can determine whether the
license is compatible and what else needs to be done.