diff options
author | Ludovic Courtès <ludo@gnu.org> | 2009-08-13 23:59:51 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2009-08-13 23:59:51 +0200 |
commit | e3c9c676ae8b45ab98296532ac9756566dc46631 (patch) | |
tree | 29ab568b991cdea1369d962af0664b6366cf681f /libguile/objcodes.c | |
parent | b3ce13b667634be30ab2d74b8ccb1de190d7aeeb (diff) | |
download | guile-e3c9c676ae8b45ab98296532ac9756566dc46631.tar.gz |
Uncomment run-time objcode alignment check.
This should now work thanks to the changes in
28b119ee3da0f4b14cb87e638794d22843778cda ("make sure all programs are
8-byte aligned"). This commit is a follow-up to
ec99fe8ecb412e49e8e981246eb62ca46b32754b ("Add FIXMEs about misaligned
objcode-metas.").
* libguile/objcodes.c (scm_c_make_objcode_slice): Uncomment assertion
that checks for proper alignment of PTR.
* module/language/assembly/compile-bytecode.scm (write-bytecode): Update
comment about META's alignment.
Diffstat (limited to 'libguile/objcodes.c')
-rw-r--r-- | libguile/objcodes.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/libguile/objcodes.c b/libguile/objcodes.c index 19c2406b1..5466ecc2c 100644 --- a/libguile/objcodes.c +++ b/libguile/objcodes.c @@ -119,10 +119,10 @@ scm_c_make_objcode_slice (SCM parent, const scm_t_uint8 *ptr) scm_from_uint32 (parent_data->len), scm_from_uint32 (parent_data->metalen))); -#if 0 - /* FIXME: We currently generate bytecode where the objcode-meta isn't - suitable aligned, which is an issue on some arches (e.g., SPARC). */ - assert ((((uintptr_t) ptr) & (__alignof__ (struct scm_objcode) - 1UL)) == 0); +#ifdef __GNUC__ /* we need `__alignof__' */ + /* Make sure bytecode for the objcode-meta is suitable aligned. Failing to + do so leads to SIGBUS/SIGSEGV on some arches (e.g., SPARC). */ + assert ((((scm_t_bits) ptr) & (__alignof__ (struct scm_objcode) - 1UL)) == 0); #endif data = (struct scm_objcode*)ptr; |