diff options
author | H. Peter Anvin <hpa@zytor.com> | 2008-06-10 13:00:27 -0700 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2008-06-10 13:00:27 -0700 |
commit | 253a4e7a9f26facc7e266f700832a213473d05f9 (patch) | |
tree | 87a91f6dea55afe42e4c3daeb1fb0996807c4fc8 | |
parent | 51997d3d44a9279508b16e9f3d5e2de173ece7c2 (diff) | |
download | nasm-253a4e7a9f26facc7e266f700832a213473d05f9.tar.gz |
Make it possible to use "inline" and "restrict"
Put the appropriate machinery in place to be able to use the "inline"
and "restrict" keywords with appropriate semantics.
-rw-r--r-- | compiler.h | 16 | ||||
-rw-r--r-- | configure.in | 2 |
2 files changed, 16 insertions, 2 deletions
@@ -22,7 +22,17 @@ #ifdef HAVE_CONFIG_H # include "config.h" -#endif +/* autoconf doesn't define these if they are redundant, but we want to + be able to #ifdef them... */ +#else +/* Default these to unsupported unless we have config.h */ +# ifndef inline +# define inline +# endif +# ifndef restrict +# define restrict +# endif +#endif /* HAVE_CONFIG_H */ /* This is required to get the standard <inttypes.h> macros when compiling with a C++ compiler. This must be defined *before* <inttypes.h> is @@ -71,7 +81,9 @@ int vsnprintf(char *, size_t, const char *, va_list); # ifdef HAVE_STDBOOL_H # include <stdbool.h> # else -typedef enum { false, true } bool; +/* This is sort of dangerous, since casts will behave different than + casting to the standard boolean type. Always use !!, not (bool). */ +typedef enum bool { false, true } bool; # endif #endif diff --git a/configure.in b/configure.in index 9a735141..15519489 100644 --- a/configure.in +++ b/configure.in @@ -92,6 +92,8 @@ AC_CHECK_HEADERS(stdbool.h) dnl Checks for typedefs, structures, and compiler characteristics. AC_C_CONST +AC_C_INLINE +AC_C_RESTRICT AC_TYPE_SIZE_T AC_C_BIGENDIAN(AC_DEFINE(WORDS_BIGENDIAN),AC_DEFINE(WORDS_LITTLEENDIAN)) AH_TEMPLATE(WORDS_BIGENDIAN, |