From bdc6b5015374cdedcc7b599d3774537bc2802ae1 Mon Sep 17 00:00:00 2001 From: cadmic Date: Mon, 13 Jan 2025 05:32:25 -0800 Subject: [iQue] Define EGCS macro instead of relying on `__GNUC__` (#2423) * [iQue] Define EGCS macro instead of relying on __GNUC__ * Revert longlong.h --- include/libc/stdarg.h | 21 ++++++++++----------- include/macros.h | 4 ++-- 2 files changed, 12 insertions(+), 13 deletions(-) (limited to 'include') diff --git a/include/libc/stdarg.h b/include/libc/stdarg.h index 7c7d2800e..717299ccd 100644 --- a/include/libc/stdarg.h +++ b/include/libc/stdarg.h @@ -1,16 +1,7 @@ #ifndef STDARG_H #define STDARG_H -// When building with modern GCC, use the official vaarg macros to avoid warnings and possibly bad codegen. - -#if __GNUC__ >= 3 - -#define va_list __builtin_va_list -#define va_start __builtin_va_start -#define va_arg __builtin_va_arg -#define va_end __builtin_va_end - -#elif defined(__sgi) /* IDO */ +#if defined(__sgi) /* IDO */ #ifndef _VA_LIST_ # define _VA_LIST_ @@ -52,7 +43,7 @@ typedef char* va_list; /* No cleanup processing is required for the end of a varargs list: */ #define va_end(__list) -#else /* EGCS */ +#elif defined(EGCS) /* EGCS */ typedef char * __gnuc_va_list; @@ -75,6 +66,14 @@ typedef char * __gnuc_va_list; typedef __gnuc_va_list va_list; +#else /* Modern GCC */ + +// When building with modern GCC, use the official vaarg macros to avoid warnings and possibly bad codegen. +#define va_list __builtin_va_list +#define va_start __builtin_va_start +#define va_arg __builtin_va_arg +#define va_end __builtin_va_end + #endif #endif diff --git a/include/macros.h b/include/macros.h index d7547482c..c5264ba6a 100644 --- a/include/macros.h +++ b/include/macros.h @@ -52,10 +52,10 @@ #if DEBUG_FEATURES #define PRINTF osSyncPrintf +#elif defined(EGCS) +#define PRINTF(format, args...) while (0) osSyncPrintf(format, ##args) #elif IDO_PRINTF_WORKAROUND #define PRINTF(args) (void)0 -#elif defined(__GNUC__) && __GNUC__ < 3 -#define PRINTF(format, args...) while (0) osSyncPrintf(format, ##args) #else #define PRINTF(format, ...) (void)0 #endif -- cgit v1.2.3