From 73823e4d093e3397721488a31bfc7207ba6a8a58 Mon Sep 17 00:00:00 2001 From: Paul Rouget Date: Wed, 3 Nov 2021 14:51:08 +0800 Subject: [PATCH] Don't use #define CS_ENABLE_STRDUP defined(). Macro expansion producing 'defined' has undefined behavior. --- mjs.c | 8 ++++++-- src/common/platforms/platform_nrf51.h | 4 +++- src/common/platforms/platform_nrf52.h | 4 +++- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/mjs.c b/mjs.c index 49c3d92..262707c 100644 --- a/mjs.c +++ b/mjs.c @@ -1145,7 +1145,9 @@ int gettimeofday(struct timeval *tp, void *tzp); /* * ARM C Compiler doesn't have strdup, so we provide it */ -#define CS_ENABLE_STRDUP defined(__ARMCC_VERSION) +#if defined(__ARMCC_VERSION) +#define CS_ENABLE_STRDUP 1 +#endif #endif /* CS_PLATFORM == CS_P_NRF51 */ #endif /* CS_COMMON_PLATFORMS_PLATFORM_NRF51_H_ */ @@ -1189,7 +1191,9 @@ int gettimeofday(struct timeval *tp, void *tzp); /* * ARM C Compiler doesn't have strdup, so we provide it */ -#define CS_ENABLE_STRDUP defined(__ARMCC_VERSION) +#if defined(__ARMCC_VERSION) +#define CS_ENABLE_STRDUP 1 +#endif #endif /* CS_PLATFORM == CS_P_NRF52 */ #endif /* CS_COMMON_PLATFORMS_PLATFORM_NRF52_H_ */ diff --git a/src/common/platforms/platform_nrf51.h b/src/common/platforms/platform_nrf51.h index 6f1357b..2f04c07 100644 --- a/src/common/platforms/platform_nrf51.h +++ b/src/common/platforms/platform_nrf51.h @@ -48,7 +48,9 @@ int gettimeofday(struct timeval *tp, void *tzp); /* * ARM C Compiler doesn't have strdup, so we provide it */ -#define CS_ENABLE_STRDUP defined(__ARMCC_VERSION) +#if defined(__ARMCC_VERSION) +#define CS_ENABLE_STRDUP 1 +#endif #endif /* CS_PLATFORM == CS_P_NRF51 */ #endif /* CS_COMMON_PLATFORMS_PLATFORM_NRF51_H_ */ diff --git a/src/common/platforms/platform_nrf52.h b/src/common/platforms/platform_nrf52.h index 2b8b882..0cd12bb 100644 --- a/src/common/platforms/platform_nrf52.h +++ b/src/common/platforms/platform_nrf52.h @@ -51,7 +51,9 @@ /* * ARM C Compiler doesn't have strdup, so we provide it */ -#define CS_ENABLE_STRDUP defined(__ARMCC_VERSION) +#if defined(__ARMCC_VERSION) +#define CS_ENABLE_STRDUP 1 +#endif #endif /* CS_PLATFORM == CS_P_NRF52 */ #endif /* CS_COMMON_PLATFORMS_PLATFORM_NRF52_H_ */