diff --git a/NEWS b/NEWS index e910addb1..c86426cde 100644 --- a/NEWS +++ b/NEWS @@ -49,6 +49,9 @@ arguments. The new syntax is documented in the Guile Reference manual. () ** Fix compilation with GCC 14 and musl on 32-bit systems () +** Immutable stringbufs are now 8-byte aligned on all systems + Previously they could end up with an alignment that violated the type + tag for their type (e.g. ending up tagged as immediates SCM_IMP()). Changes in 3.0.10 (since 3.0.9) diff --git a/libguile/strings.h b/libguile/strings.h index f28ef3246..d417514f8 100644 --- a/libguile/strings.h +++ b/libguile/strings.h @@ -184,7 +184,7 @@ SCM_API SCM scm_makfromstrs (int argc, char **argv); #ifdef SCM_SUPPORT_STATIC_ALLOCATION #define SCM_IMMUTABLE_STRINGBUF(c_name, contents) \ - static SCM_UNUSED const \ + static SCM_UNUSED SCM_ALIGNED(8) const \ struct \ { \ scm_t_bits word_0; \