Handle older GCC (e.g., Haiku); add tests.
Fix erroneous use of __GNUC_VERSION__
Fix erroneous attempt to use a return value from va_start()