From 6b1069c4073ba51bdd18a716955ee37915ef89dd Mon Sep 17 00:00:00 2001 From: Andreas Sandberg Date: Wed, 10 May 2017 13:10:23 +0100 Subject: [PATCH] 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 --- src/sim/syscall_emul.hh | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) 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 -- 2.30.2