diff --git a/libc/fuzzing/stdlib/strtofloat_fuzz.cpp b/libc/fuzzing/stdlib/strtofloat_fuzz.cpp --- a/libc/fuzzing/stdlib/strtofloat_fuzz.cpp +++ b/libc/fuzzing/stdlib/strtofloat_fuzz.cpp @@ -45,6 +45,17 @@ if (str_ptr + size < out_ptr) __builtin_trap(); + // If any of the outputs are NaN + if (atof_output != atof_output || strtof_output != strtof_output || + strtod_output != strtod_output || strtold_output != strtold_output) { + // Then all the outputs should be NaN. + // This is a trivial check meant to silence the "unused variable" warnings. + if (atof_output == atof_output || strtof_output == strtof_output || + strtod_output == strtod_output || strtold_output == strtold_output) { + __builtin_trap(); + } + } + delete[] container; return 0; } diff --git a/libc/fuzzing/stdlib/strtointeger_fuzz.cpp b/libc/fuzzing/stdlib/strtointeger_fuzz.cpp --- a/libc/fuzzing/stdlib/strtointeger_fuzz.cpp +++ b/libc/fuzzing/stdlib/strtointeger_fuzz.cpp @@ -65,6 +65,16 @@ if (str_ptr + container_size - 1 < out_ptr) __builtin_trap(); + // If atoi is non-zero and the base is at least 10 + if (atoi_output != 0 && base >= 10) { + // Then all of the other functions should output non-zero values as well. + // This is a trivial check meant to silence the "unused variable" warnings. + if (atol_output == 0 || atoll_output == 0 || strtol_output == 0 || + strtoll_output == 0 || strtoul_output == 0 || strtoull_output == 0) { + __builtin_trap(); + } + } + delete[] container; return 0; }