From: Andreas Sandberg Date: Wed, 10 May 2017 12:10:23 +0000 (+0100) Subject: syscall_emul: Fix undefined macro behavior X-Git-Tag: v19.0.0.0~2801 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=6b1069c4073ba51bdd18a716955ee37915ef89dd;p=gem5.git syscall_emul: Fix undefined macro behavior Clang's UBSAN implementation complains about macros that expand to expressions that contain 'defined'. Explicitly set the various feature macros to 1 or 0 to avoid this issue. Change-Id: Iba239dacfe526c43ab9c5da5183a350fc4fdc57d Signed-off-by: Andreas Sandberg Reviewed-by: Andreas Hansson Reviewed-by: Curtis Dunham Reviewed-on: https://gem5-review.googlesource.com/3241 --- diff --git a/src/sim/syscall_emul.hh b/src/sim/syscall_emul.hh index a1c3b2905..53c053f05 100644 --- a/src/sim/syscall_emul.hh +++ b/src/sim/syscall_emul.hh @@ -45,15 +45,27 @@ #ifndef __SIM_SYSCALL_EMUL_HH__ #define __SIM_SYSCALL_EMUL_HH__ -#define NO_STAT64 (defined(__APPLE__) || defined(__OpenBSD__) || \ - defined(__FreeBSD__) || defined(__CYGWIN__) || \ - defined(__NetBSD__)) +#if (defined(__APPLE__) || defined(__OpenBSD__) || \ + defined(__FreeBSD__) || defined(__CYGWIN__) || \ + defined(__NetBSD__)) +#define NO_STAT64 1 +#else +#define NO_STAT64 0 +#endif -#define NO_STATFS (defined(__APPLE__) || defined(__OpenBSD__) || \ - defined(__FreeBSD__) || defined(__NetBSD__)) +#if (defined(__APPLE__) || defined(__OpenBSD__) || \ + defined(__FreeBSD__) || defined(__NetBSD__)) +#define NO_STATFS 1 +#else +#define NO_STATFS 0 +#endif -#define NO_FALLOCATE (defined(__APPLE__) || defined(__OpenBSD__) || \ - defined(__FreeBSD__) || defined(__NetBSD__)) +#if (defined(__APPLE__) || defined(__OpenBSD__) || \ + defined(__FreeBSD__) || defined(__NetBSD__)) +#define NO_FALLOCATE 1 +#else +#define NO_FALLOCATE 0 +#endif /// /// @file syscall_emul.hh