comparison src/lisp.h @ 58575:d6700fc5f1d6

(DECL_ALIGN): Define non-trivially only if NO_DECL_ALIGN is not defined.
author Eli Zaretskii <eliz@gnu.org>
date Sat, 27 Nov 2004 12:24:40 +0000
parents 9d980e1ac633
children 55d668830eed
comparison
equal deleted inserted replaced
58574:b7bee1a14f1e 58575:d6700fc5f1d6
302 as the two special buffers buffer_defaults and buffer_local_symbols. */ 302 as the two special buffers buffer_defaults and buffer_local_symbols. */
303 303
304 /* First, try and define DECL_ALIGN(type,var) which declares a static 304 /* First, try and define DECL_ALIGN(type,var) which declares a static
305 variable VAR of type TYPE with the added requirement that it be 305 variable VAR of type TYPE with the added requirement that it be
306 TYPEBITS-aligned. */ 306 TYPEBITS-aligned. */
307 #ifndef DECL_ALIGN 307 #ifndef NO_DECL_ALIGN
308 # ifndef DECL_ALIGN
308 /* What compiler directive should we use for non-gcc compilers? -stef */ 309 /* What compiler directive should we use for non-gcc compilers? -stef */
309 # if defined (__GNUC__) 310 # if defined (__GNUC__)
310 # define DECL_ALIGN(type, var) \ 311 # define DECL_ALIGN(type, var) \
311 type __attribute__ ((__aligned__ (1 << GCTYPEBITS))) var 312 type __attribute__ ((__aligned__ (1 << GCTYPEBITS))) var
313 # endif
312 # endif 314 # endif
313 #endif 315 #endif
314 316
315 /* Let's USE_LSB_TAG on systems where we know malloc returns mult-of-8. */ 317 /* Let's USE_LSB_TAG on systems where we know malloc returns mult-of-8. */
316 #if defined GNU_MALLOC || defined DOUG_LEA_MALLOC || defined __GLIBC__ || defined MAC_OSX 318 #if defined GNU_MALLOC || defined DOUG_LEA_MALLOC || defined __GLIBC__ || defined MAC_OSX
321 # define USE_LSB_TAG 323 # define USE_LSB_TAG
322 # endif 324 # endif
323 # endif 325 # endif
324 #endif 326 #endif
325 327
326 /* Just remove the alignment annotation if we don't use it. */ 328 /* If we cannot use 8-byte alignment, make DECL_ALIGN a no-op. */
327 #ifndef DECL_ALIGN 329 #ifndef DECL_ALIGN
328 # ifdef USE_LSB_TAG 330 # ifdef USE_LSB_TAG
329 # error "USE_LSB_TAG used without defining DECL_ALIGN" 331 # error "USE_LSB_TAG used without defining DECL_ALIGN"
330 # endif 332 # endif
331 # define DECL_ALIGN(type, var) type var 333 # define DECL_ALIGN(type, var) type var