From: Devin Jeanpierre Date: Thu, 7 Sep 2017 01:00:47 +0000 (-0700) Subject: Avoid UB in test selection macro. (#3407) X-Git-Tag: v3.7.0a1~121 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=78ebc73f9b17373d25eb35e9f9511b2cb63825ff;p=python Avoid UB in test selection macro. (#3407) This fixes the gcc "warning: this use of "defined" may not be portable [-Wexpansion-to-defined]" See discussion in http://bugs.python.org/issue29505 --- diff --git a/Modules/_xxtestfuzz/fuzzer.c b/Modules/_xxtestfuzz/fuzzer.c index 36f721ee62..b50eb65127 100644 --- a/Modules/_xxtestfuzz/fuzzer.c +++ b/Modules/_xxtestfuzz/fuzzer.c @@ -105,16 +105,14 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { int rv = 0; -#define _Py_FUZZ_YES(test_name) (defined(_Py_FUZZ_##test_name) || !defined(_Py_FUZZ_ONE)) -#if _Py_FUZZ_YES(fuzz_builtin_float) +#if !defined(_Py_FUZZ_ONE) || defined(_Py_FUZZ_fuzz_builtin_float) rv |= _run_fuzz(data, size, fuzz_builtin_float); #endif -#if _Py_FUZZ_YES(fuzz_builtin_int) +#if !defined(_Py_FUZZ_ONE) || defined(_Py_FUZZ_fuzz_builtin_int) rv |= _run_fuzz(data, size, fuzz_builtin_int); #endif -#if _Py_FUZZ_YES(fuzz_builtin_unicode) +#if !defined(_Py_FUZZ_ONE) || defined(_Py_FUZZ_fuzz_builtin_unicode) rv |= _run_fuzz(data, size, fuzz_builtin_unicode); #endif -#undef _Py_FUZZ_YES return rv; }