Mercurial > emacs
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 |