comparison src/lisp.h @ 53669:2127bc33e972

[USE_LSB_TAG && !DECL_ALIGN]: Signal an error.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Wed, 21 Jan 2004 19:32:49 +0000
parents 142aa239165f
children 1b20aa00ebc2 82c3b4da43ca
comparison
equal deleted inserted replaced
53668:142aa239165f 53669:2127bc33e972
292 /***** Select the tagging scheme. *****/ 292 /***** Select the tagging scheme. *****/
293 293
294 /* First, try and define DECL_ALIGN(type,var) which declares a static 294 /* First, try and define DECL_ALIGN(type,var) which declares a static
295 variable VAR of type TYPE with the added requirement that it be 295 variable VAR of type TYPE with the added requirement that it be
296 TYPEBITS-aligned. */ 296 TYPEBITS-aligned. */
297 #ifndef DECL_ALIGN 297 #if defined USE_LSB_TAG && !defined DECL_ALIGN
298 /* What compiler directive should we use for non-gcc compilers? -stef */ 298 /* What compiler directive should we use for non-gcc compilers? -stef */
299 #if defined (__GNUC__) 299 # if defined (__GNUC__)
300 #define DECL_ALIGN(type, var) \ 300 # define DECL_ALIGN(type, var) \
301 type __attribute__ ((__aligned__ (1 << GCTYPEBITS))) var 301 type __attribute__ ((__aligned__ (1 << GCTYPEBITS))) var
302 #endif 302 # else
303 #endif 303 # error "USE_LSB_TAG used without defining DECL_ALIGN"
304 304 # endif
305 #ifndef DECL_ALIGN
306 /* Can't USE_LSB_TAG if we can't enforce alignment of statically allocated
307 objects like lisp_subr and the special buffers in buffer.c. */
308 #undef USE_LSB_TAG
309 #endif 305 #endif
310 306
311 #ifndef USE_LSB_TAG 307 #ifndef USE_LSB_TAG
312 /* Just remove the alignment annotation if we don't use it. */ 308 /* Just remove the alignment annotation if we don't use it. */
313 #undef DECL_ALIGN 309 #undef DECL_ALIGN