mirror of
https://github.com/netwide-assembler/nasm.git
synced 2025-02-17 17:19:35 +08:00
autoconf: detect the broken bool in OpenWatcom 1.8
OpenWatcom 1.8 has a C99 mode, which implements _Bool and <stdbool.h>. Unfortunately the implementation is broken, and doesn't let _Bool be implicitly converted to integer (as required by the C99 spec). Detect this case in autoconf.
This commit is contained in:
parent
16a856cd85
commit
1fb908c0db
24
aclocal.m4
vendored
24
aclocal.m4
vendored
@ -13,3 +13,27 @@ AC_DEFUN(PA_ADD_CFLAGS,
|
||||
AC_MSG_RESULT([no])
|
||||
CFLAGS="$pa_add_cflags__old_cflags")])
|
||||
|
||||
dnl --------------------------------------------------------------------------
|
||||
dnl PA_WORKING_STDBOOL
|
||||
dnl
|
||||
dnl See if we have a working <stdbool.h> and bool support; in particular,
|
||||
dnl OpenWatcom 1.8 has a broken _Bool type that we don't want to use.
|
||||
dnl --------------------------------------------------------------------------
|
||||
AC_DEFUN(PA_WORKING_BOOL,
|
||||
[AC_MSG_CHECKING([if $CC has a working bool type])
|
||||
AC_COMPILE_IFELSE(
|
||||
[
|
||||
#ifndef __cplusplus
|
||||
#include <stdbool.h>
|
||||
#endif
|
||||
int foo(bool x, int y)
|
||||
{
|
||||
return x+y;
|
||||
}
|
||||
],
|
||||
[AC_MSG_RESULT([yes])
|
||||
AC_DEFINE(HAVE_WORKING_BOOL, 1,
|
||||
[Define to 1 if your compiler has a correct implementation of bool])],
|
||||
[AC_MSG_RESULT([no])])
|
||||
])
|
||||
|
||||
|
@ -78,7 +78,7 @@ int vsnprintf(char *, size_t, const char *, va_list);
|
||||
#endif
|
||||
|
||||
#ifndef __cplusplus /* C++ has false, true, bool as keywords */
|
||||
# ifdef HAVE_STDBOOL_H
|
||||
# if defined(HAVE_STDBOOL_H) && defined(HAVE_WORKING_BOOL)
|
||||
# include <stdbool.h>
|
||||
# else
|
||||
/* This is sort of dangerous, since casts will behave different than
|
||||
|
@ -97,6 +97,7 @@ AC_C_CONST
|
||||
AC_C_INLINE
|
||||
AC_C_RESTRICT
|
||||
AC_TYPE_SIZE_T
|
||||
PA_WORKING_BOOL
|
||||
AC_C_BIGENDIAN(AC_DEFINE(WORDS_BIGENDIAN),AC_DEFINE(WORDS_LITTLEENDIAN))
|
||||
AH_TEMPLATE(WORDS_BIGENDIAN,
|
||||
[Define to 1 if your processor stores words with the most significant
|
||||
|
Loading…
Reference in New Issue
Block a user