clang emits an error while building vfprintf-internal for default
case:
error: result of comparison of constant 255 with expression of type
'char' is always true
[-Werror,-Wtautological-constant-out-of-range-compare]
if (spec <= UCHAR_MAX
The test is indeed not required for default non-wide build.
Reviewed-by: Collin Funk <collin.funk1@gmail.com>
/* Process format specifiers. */
do
{
- if (spec <= UCHAR_MAX
+# ifdef COMPILE_WPRINTF
+# define CHECK_SPEC(spec) ((spec) <= UCHAR_MAX)
+# else
+# define CHECK_SPEC(spec) (true)
+# endif
+ if (CHECK_SPEC (spec)
&& __printf_function_table != NULL
&& __printf_function_table[(size_t) spec] != NULL)
{