diff options
author | H. Peter Anvin <hpa@zytor.com> | 2010-06-07 11:34:28 -0700 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2010-06-07 11:34:28 -0700 |
commit | b714cb27cbf8b3b158b11841875a4aa6ff71b17d (patch) | |
tree | 53d9565a954cd79c1891d528232d304ec40300c7 | |
parent | 4dff757ba5f22b3ac633d7c792f720d12f4f19f8 (diff) | |
download | nasm-b714cb27cbf8b3b158b11841875a4aa6ff71b17d.tar.gz nasm-b714cb27cbf8b3b158b11841875a4aa6ff71b17d.tar.bz2 nasm-b714cb27cbf8b3b158b11841875a4aa6ff71b17d.zip |
outobj: handle compilers without 64-bit switch() support
OpenWatcom, in particular, doesn't handle switch() statements with
64-bit expressions, sigh.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
-rw-r--r-- | output/outobj.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/output/outobj.c b/output/outobj.c index f660170..e62bc3f 100644 --- a/output/outobj.c +++ b/output/outobj.c @@ -43,6 +43,7 @@ #include <string.h> #include <ctype.h> #include <inttypes.h> +#include <limits.h> #include "nasm.h" #include "nasmlib.h" @@ -1099,7 +1100,10 @@ static void obj_out(int32_t segto, const void *data, ldata -= size; } - switch (size) { + if (size > UINT_MAX) + size = 0; + + switch ((unsigned int)size) { default: nasm_error(ERR_NONFATAL, "OBJ format can only handle 16- or " "32-byte relocations"); |