diff --git a/miniaudio.h b/miniaudio.h index 0fb9918c..53dbe92d 100644 --- a/miniaudio.h +++ b/miniaudio.h @@ -13256,8 +13256,12 @@ Logging **************************************************************************************************************************************************************/ #ifndef ma_va_copy #if !defined(_MSC_VER) || _MSC_VER >= 1800 - #if (defined(__GNUC__) && __GNUC__ < 3) - #define ma_va_copy(dst, src) ((dst) = (src)) /* This is untested. Not sure if this is correct for old GCC. */ + #if !defined(__STDC_VERSION__) || (defined(__GNUC__) && __GNUC__ < 3) /* <-- va_copy() is not available when using `-std=c89`. The `!defined(__STDC_VERSION__)` parts is what checks for this. */ + #if defined(__va_copy) + #define ma_va_copy(dst, src) __va_copy(dst, src) + #else + #define ma_va_copy(dst, src) ((dst) = (src)) /* This is untested. Not sure if this is correct for old GCC. */ + #endif #else #define ma_va_copy(dst, src) va_copy((dst), (src)) #endif