1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-01 20:30:28 +02:00

Disable type-checking of `SCM_UNPACK' for the broken HP compilers.

This commit is contained in:
Ludovic Courtès 2008-06-28 20:31:01 +02:00
parent 22ba77df3d
commit a9f32e12c4
3 changed files with 14 additions and 3 deletions

2
NEWS
View file

@ -15,7 +15,7 @@ This makes these internal functions technically not callable from
application code. application code.
** `guile-config link' now prints `-L$libdir' before `-lguile' ** `guile-config link' now prints `-L$libdir' before `-lguile'
** Fix build issue on Tru64 ** Fix build issue on Tru64 and ia64-hp-hpux11.23 (`SCM_UNPACK' macro)
Changes in 1.8.5 (since 1.8.4) Changes in 1.8.5 (since 1.8.4)

View file

@ -1,3 +1,8 @@
2008-06-28 Ludovic Courtès <ludo@gnu.org>
* tags.h (SCM_UNPACK): Disable type-checking for `__DECC' and
`__HP_cc'. Reported by Peter O'Gorman <pogma@thewrittenword.com>.
2008-06-02 Ludovic Courtès <ludo@gnu.org> 2008-06-02 Ludovic Courtès <ludo@gnu.org>
* deprecated.c (maybe_close_port): Rename EXCEPT to EXCEPT_SET * deprecated.c (maybe_close_port): Rename EXCEPT to EXCEPT_SET

View file

@ -3,7 +3,7 @@
#ifndef SCM_TAGS_H #ifndef SCM_TAGS_H
#define SCM_TAGS_H #define SCM_TAGS_H
/* Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004 /* Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2008
* Free Software Foundation, Inc. * Free Software Foundation, Inc.
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
@ -113,8 +113,14 @@ typedef unsigned long scm_t_bits;
and that there is no performance hit. However, the alternative is and that there is no performance hit. However, the alternative is
compiled, and does generate a warning when used with the wrong compiled, and does generate a warning when used with the wrong
pointer type. pointer type.
*/
The Tru64 and ia64-hp-hpux11.23 compilers fail on `case (0?0=0:x)'
statements, so for them type-checking is disabled. */
#if defined __DECC || defined __HP_cc
# define SCM_UNPACK(x) ((scm_t_bits) (x))
#else
# define SCM_UNPACK(x) ((scm_t_bits) (0? (*(SCM*)0=(x)): x)) # define SCM_UNPACK(x) ((scm_t_bits) (0? (*(SCM*)0=(x)): x))
#endif
/* /*
There is no typechecking on SCM_PACK, since all kinds of types There is no typechecking on SCM_PACK, since all kinds of types