J***@t-systems.com
2017-05-31 12:49:47 UTC
Hi,
That change is incorrect (the old test was incorrect too).
- #if defined(UNIX_LINUX) || defined(UNIX_FREEBSD) || (defined(UNIX_MACOSX) && (__GNUC__ == 4) && ((__GNUC_MINOR__ >= 5)))
+ #if defined(UNIX_LINUX) || defined(UNIX_FREEBSD) || (defined(UNIX_MACOSX) && (defined(__clang__) || ((__GNUC__ >= 4) && (__GNUC_MINOR__ >= 5))))
The old one did not test correctly for GCC >= 4.5 (supposing that was intended).
For example, think about gcc v 5.2.
The new one will produce different results for gcc 5.2 and 5.7. This is certainly unwanted.
The GCC manual shows examples about how to test for >= a specific version
(whether x*100+y is a good trick is debatable).
https://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html
Regards,
Jörg
That change is incorrect (the old test was incorrect too).
- #if defined(UNIX_LINUX) || defined(UNIX_FREEBSD) || (defined(UNIX_MACOSX) && (__GNUC__ == 4) && ((__GNUC_MINOR__ >= 5)))
+ #if defined(UNIX_LINUX) || defined(UNIX_FREEBSD) || (defined(UNIX_MACOSX) && (defined(__clang__) || ((__GNUC__ >= 4) && (__GNUC_MINOR__ >= 5))))
The old one did not test correctly for GCC >= 4.5 (supposing that was intended).
For example, think about gcc v 5.2.
The new one will produce different results for gcc 5.2 and 5.7. This is certainly unwanted.
The GCC manual shows examples about how to test for >= a specific version
(whether x*100+y is a good trick is debatable).
https://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html
Regards,
Jörg