[musl] alignment guarantees from realloc(3)

Rich Felker dalias@libc.org
Fri Oct 31 06:00:17 GMT 2025


On Fri, Oct 31, 2025 at 12:29:25AM +0100, Alejandro Colomar wrote:
> Hi!
> 
> 
> A discussion in the C++ std-proposals@ mailing list triggered a
> discussion about the lack of aligned_realloc().
> 
> I don't think we want an aligned_realloc(), as it would be very weird to
> change the alignment of a block of memory.  Once you have there some
> contents, the alignment would just have to be preserved.
> 
> Thus, I think realloc(3) should preserve the alignment from a previous
> aligned_alloc(3), and thus, not need an aligned_realloc() at all.
> 
> Before writing a proposal for the standards, I'd like to ask about the
> feasibility of adding this guarantee in realloc(3) in glibc and musl.
> Would you mind adding such a guarantee to realloc(3)?
> 
> The precise wording I'm considering for a standards proposal will look
> something like this:
> 
> 	realloc(3) shall preserve the alignment of a block allocated
> 	previously by aligned_alloc(3).

I don't see this as feasible at all. It's a new requirement to store
the original requested alignment with each allocation, which can be a
significant storage burden, and has only niche applications at best.

Rich


More information about the Libc-alpha mailing list