The epiphany-elf target aligns structs to 8 bytes, which causes the static_assert(alignof(_Chunk) == 1) to fail. Instead of requiring _Chunks to be positionable at any alignment, ensure new buffers are aligned to alignof(_Chunk). Because the buffer size is a power of two, we know that both the buffer size and sizeof(_Chunk) are multiples of alignof(_Chunk). So is p is aligned to alignof(_Chunk) then so is (p + size - sizeof(_Chunk)). So just ensure the new buffer is aligned to at least alignof(_Chunk), which should already be true because the caller requests at least alignof(max_align_t). PR libstdc++/90046 * src/c++17/memory_resource.cc (monotonic_buffer_resource::_Chunk::allocate): Increase alignment if needed to allow placing a _Chunk at the end of the buffer. (monotonic_buffer_resource::_M_new_buffer): Remove static_assert. From-SVN: r270291
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
Makefile.am | Loading commit data... | |
Makefile.in | Loading commit data... | |
cow-fs_dir.cc | Loading commit data... | |
cow-fs_ops.cc | Loading commit data... | |
cow-fs_path.cc | Loading commit data... | |
cow-string-inst.cc | Loading commit data... | |
default_resource.h | Loading commit data... | |
fs_dir.cc | Loading commit data... | |
fs_ops.cc | Loading commit data... | |
fs_path.cc | Loading commit data... | |
memory_resource.cc | Loading commit data... | |
ostream-inst.cc | Loading commit data... | |
string-inst.cc | Loading commit data... |