[libc-commits] [libc] 3c2968b - [libc][fuzzing] Re-enable math fuzzing with internal headers (#231744)
via libc-commits
libc-commits at lists.llvm.org
Sat Oct 17 23:42:03 PDT 2026
Author: Aman Maurya
Date: 2026-10-18T12:11:57+05:30
New Revision: 3c2968bbb362ee1d4a9e701fd2d8c5d37993d497
URL: https://github.com/llvm/llvm-project/commit/3c2968bbb362ee1d4a9e701fd2d8c5d37993d497
DIFF: https://github.com/llvm/llvm-project/commit/3c2968bbb362ee1d4a9e701fd2d8c5d37993d497.diff
LOG: [libc][fuzzing] Re-enable math fuzzing with internal headers (#231744)
Re-enable math fuzzing after header inclusion decoupling.
- Replace `<math.h>` with `"hdr/math_function_macros.h"` across math
fuzzers and add CMake dependencies.
- Re-enable `add_subdirectory(math)` in `libc/fuzzing/CMakeLists.txt`.
- Forward `LINK_LIBRARIES` in `add_libc_fuzzer`.
- Skip comparing unspecified `frexp` side-effects for NaN/Inf in
`SingleInputSingleOutputDiff.h`.
Fixes #85680
Assisted-by: Automated tooling, human reviewed.
Added:
Modified:
libc/cmake/modules/LLVMLibCTestRules.cmake
libc/fuzzing/CMakeLists.txt
libc/fuzzing/math/CMakeLists.txt
libc/fuzzing/math/SingleInputSingleOutputDiff.h
libc/fuzzing/math/acos_fuzz.cpp
libc/fuzzing/math/asin_fuzz.cpp
libc/fuzzing/math/cbrt_fuzz.cpp
libc/fuzzing/math/cos_fuzz.cpp
libc/fuzzing/math/exp10_fuzz.cpp
libc/fuzzing/math/exp2_fuzz.cpp
libc/fuzzing/math/exp_fuzz.cpp
libc/fuzzing/math/expm1_fuzz.cpp
libc/fuzzing/math/f16sqrt_fuzz.cpp
libc/fuzzing/math/fsqrt_fuzz.cpp
libc/fuzzing/math/hypot_fuzz.cpp
libc/fuzzing/math/log10_fuzz.cpp
libc/fuzzing/math/log1p_fuzz.cpp
libc/fuzzing/math/log2_fuzz.cpp
libc/fuzzing/math/log_fuzz.cpp
libc/fuzzing/math/sin_fuzz.cpp
libc/fuzzing/math/sincos_fuzz.cpp
libc/fuzzing/math/sqrt_fuzz.cpp
libc/fuzzing/math/tan_fuzz.cpp
Removed:
################################################################################
diff --git a/libc/cmake/modules/LLVMLibCTestRules.cmake b/libc/cmake/modules/LLVMLibCTestRules.cmake
index 13b50c1799aaa9..56a51e161fcdd2 100644
--- a/libc/cmake/modules/LLVMLibCTestRules.cmake
+++ b/libc/cmake/modules/LLVMLibCTestRules.cmake
@@ -476,7 +476,7 @@ function(add_libc_fuzzer target_name)
"LIBC_FUZZER"
"NEED_MPFR" # Optional arguments
"" # Single value arguments
- "SRCS;HDRS;DEPENDS;COMPILE_OPTIONS" # Multi-value arguments
+ "SRCS;HDRS;DEPENDS;COMPILE_OPTIONS;LINK_LIBRARIES" # Multi-value arguments
${ARGN}
)
if(NOT LIBC_FUZZER_SRCS)
@@ -488,13 +488,13 @@ function(add_libc_fuzzer target_name)
"'add_entrypoint_object' targets.")
endif()
- list(APPEND LIBC_FUZZER_LINK_LIBRARIES "")
+ set(link_libraries ${LIBC_FUZZER_LINK_LIBRARIES})
if(LIBC_FUZZER_NEED_MPFR)
if(NOT LIBC_TESTS_CAN_USE_MPFR)
- message(VERBOSE "Fuzz test ${name} will be skipped as MPFR library is not available.")
+ message(VERBOSE "Fuzz test ${target_name} will be skipped as MPFR library is not available.")
return()
endif()
- list(APPEND LIBC_FUZZER_LINK_LIBRARIES mpfr gmp)
+ list(APPEND link_libraries mpfr gmp)
endif()
@@ -530,7 +530,7 @@ function(add_libc_fuzzer target_name)
target_link_libraries(${fq_target_name} PRIVATE
${link_object_files}
- ${LIBC_FUZZER_LINK_LIBRARIES}
+ ${link_libraries}
)
set_target_properties(${fq_target_name}
diff --git a/libc/fuzzing/CMakeLists.txt b/libc/fuzzing/CMakeLists.txt
index de3ae527b495ab..a15a89f6a6ec02 100644
--- a/libc/fuzzing/CMakeLists.txt
+++ b/libc/fuzzing/CMakeLists.txt
@@ -3,7 +3,6 @@ add_custom_target(libc-fuzzer)
add_subdirectory(__support)
add_subdirectory(arpa)
-# TODO(#85680): Re-enable math fuzzing after headers are sorted out
add_subdirectory(math)
add_subdirectory(stdlib)
add_subdirectory(stdio)
diff --git a/libc/fuzzing/math/CMakeLists.txt b/libc/fuzzing/math/CMakeLists.txt
index 19416fc5fdcf66..8d330ca4951f54 100644
--- a/libc/fuzzing/math/CMakeLists.txt
+++ b/libc/fuzzing/math/CMakeLists.txt
@@ -9,6 +9,7 @@ add_libc_fuzzer(
TwoInputSingleOutputDiff.h
DEPENDS
libc.hdr.math_macros
+ libc.hdr.math_function_macros
libc.src.math.ceil
libc.src.math.ceilf
libc.src.math.ceill
@@ -57,6 +58,8 @@ add_libc_fuzzer(
HDRS
TwoInputSingleOutputDiff.h
DEPENDS
+ libc.hdr.math_macros
+ libc.hdr.math_function_macros
libc.src.math.nextafter
libc.src.math.nextafterf
libc.src.math.nextafterl
@@ -68,6 +71,7 @@ add_libc_fuzzer(
SRCS
exp_fuzz.cpp
DEPENDS
+ libc.hdr.math_function_macros
libc.src.math.exp
)
@@ -77,6 +81,7 @@ add_libc_fuzzer(
SRCS
exp10_fuzz.cpp
DEPENDS
+ libc.hdr.math_function_macros
libc.src.math.exp10
)
@@ -86,6 +91,7 @@ add_libc_fuzzer(
SRCS
exp2_fuzz.cpp
DEPENDS
+ libc.hdr.math_function_macros
libc.src.math.exp2
)
@@ -95,6 +101,7 @@ add_libc_fuzzer(
SRCS
expm1_fuzz.cpp
DEPENDS
+ libc.hdr.math_function_macros
libc.src.math.expm1
)
@@ -104,6 +111,7 @@ add_libc_fuzzer(
SRCS
asin_fuzz.cpp
DEPENDS
+ libc.hdr.math_function_macros
libc.src.math.asin
)
@@ -113,6 +121,7 @@ add_libc_fuzzer(
SRCS
sin_fuzz.cpp
DEPENDS
+ libc.hdr.math_function_macros
libc.src.math.sin
)
@@ -122,6 +131,7 @@ add_libc_fuzzer(
SRCS
acos_fuzz.cpp
DEPENDS
+ libc.hdr.math_function_macros
libc.src.math.acos
)
@@ -131,6 +141,7 @@ add_libc_fuzzer(
SRCS
cos_fuzz.cpp
DEPENDS
+ libc.hdr.math_function_macros
libc.src.math.cos
)
@@ -140,6 +151,7 @@ add_libc_fuzzer(
SRCS
tan_fuzz.cpp
DEPENDS
+ libc.hdr.math_function_macros
libc.src.math.tan
)
@@ -149,6 +161,7 @@ add_libc_fuzzer(
SRCS
sincos_fuzz.cpp
DEPENDS
+ libc.hdr.math_function_macros
libc.src.math.sincos
)
@@ -158,6 +171,7 @@ add_libc_fuzzer(
SRCS
log_fuzz.cpp
DEPENDS
+ libc.hdr.math_function_macros
libc.src.math.log
)
@@ -167,6 +181,7 @@ add_libc_fuzzer(
SRCS
log10_fuzz.cpp
DEPENDS
+ libc.hdr.math_function_macros
libc.src.math.log10
)
@@ -176,6 +191,7 @@ add_libc_fuzzer(
SRCS
log1p_fuzz.cpp
DEPENDS
+ libc.hdr.math_function_macros
libc.src.math.log1p
)
@@ -185,6 +201,7 @@ add_libc_fuzzer(
SRCS
log2_fuzz.cpp
DEPENDS
+ libc.hdr.math_function_macros
libc.src.math.log2
)
@@ -194,6 +211,7 @@ add_libc_fuzzer(
SRCS
sqrt_fuzz.cpp
DEPENDS
+ libc.hdr.math_function_macros
libc.src.__support.FPUtil.generic.sqrt
)
@@ -203,6 +221,7 @@ add_libc_fuzzer(
SRCS
cbrt_fuzz.cpp
DEPENDS
+ libc.hdr.math_function_macros
libc.src.math.cbrt
)
@@ -212,6 +231,7 @@ add_libc_fuzzer(
SRCS
fsqrt_fuzz.cpp
DEPENDS
+ libc.hdr.math_function_macros
libc.src.math.fsqrt
)
@@ -221,6 +241,7 @@ add_libc_fuzzer(
SRCS
f16sqrt_fuzz.cpp
DEPENDS
+ libc.hdr.math_function_macros
libc.src.math.f16sqrt
)
@@ -230,5 +251,6 @@ add_libc_fuzzer(
SRCS
hypot_fuzz.cpp
DEPENDS
+ libc.hdr.math_function_macros
libc.src.math.hypot
)
diff --git a/libc/fuzzing/math/SingleInputSingleOutputDiff.h b/libc/fuzzing/math/SingleInputSingleOutputDiff.h
index bdf54ee9af6c4f..d530ff4a5f87d0 100644
--- a/libc/fuzzing/math/SingleInputSingleOutputDiff.h
+++ b/libc/fuzzing/math/SingleInputSingleOutputDiff.h
@@ -10,6 +10,8 @@
#define LLVM_LIBC_FUZZING_MATH_SINGLE_INPUT_SINGLE_OUTPUT_DIFF_H
#include "fuzzing/math/Compare.h"
+#include "src/__support/CPP/type_traits.h"
+#include "src/__support/FPUtil/FPBits.h"
#include <stddef.h>
#include <stdint.h>
@@ -44,7 +46,7 @@ void SingleInputSingleOutputWithSideEffectDiff(
return;
T1 x = *reinterpret_cast<const T1 *>(data);
- T2 sideEffect1, sideEffect2;
+ T2 sideEffect1 = 0, sideEffect2 = 0;
T1 result1 = func1(x, &sideEffect1);
T1 result2 = func2(x, &sideEffect2);
@@ -52,6 +54,13 @@ void SingleInputSingleOutputWithSideEffectDiff(
if (!ValuesEqual(result1, result2))
__builtin_trap();
+ // If x is inf or nan and T2 is integral (e.g. frexp), the value of sideEffect
+ // (*exp) is unspecified by the ISO C standard (ยง7.12.6.4).
+ if (LIBC_NAMESPACE::cpp::is_floating_point_v<T1> &&
+ LIBC_NAMESPACE::fputil::FPBits<T1>(x).is_inf_or_nan() &&
+ LIBC_NAMESPACE::cpp::is_integral_v<T2>)
+ return;
+
if (!ValuesEqual(sideEffect1, sideEffect2))
__builtin_trap();
}
diff --git a/libc/fuzzing/math/acos_fuzz.cpp b/libc/fuzzing/math/acos_fuzz.cpp
index 48fb4eacc3a795..41622db8792f33 100644
--- a/libc/fuzzing/math/acos_fuzz.cpp
+++ b/libc/fuzzing/math/acos_fuzz.cpp
@@ -10,12 +10,12 @@
///
//===----------------------------------------------------------------------===//
+#include "hdr/math_function_macros.h"
#include "src/math/acos.h"
#include "utils/MPFRWrapper/mpfr_inc.h"
#include <cstdint>
#include <cstring>
#include <iostream>
-#include <math.h>
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
mpfr_t input;
diff --git a/libc/fuzzing/math/asin_fuzz.cpp b/libc/fuzzing/math/asin_fuzz.cpp
index e27d1796068241..84827a3dd78af4 100644
--- a/libc/fuzzing/math/asin_fuzz.cpp
+++ b/libc/fuzzing/math/asin_fuzz.cpp
@@ -10,12 +10,12 @@
///
//===----------------------------------------------------------------------===//
+#include "hdr/math_function_macros.h"
#include "src/math/asin.h"
#include "utils/MPFRWrapper/mpfr_inc.h"
#include <cstdint>
#include <cstring>
#include <iostream>
-#include <math.h>
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
mpfr_t input;
diff --git a/libc/fuzzing/math/cbrt_fuzz.cpp b/libc/fuzzing/math/cbrt_fuzz.cpp
index 95f1df1695e56c..d32b0494b0bf72 100644
--- a/libc/fuzzing/math/cbrt_fuzz.cpp
+++ b/libc/fuzzing/math/cbrt_fuzz.cpp
@@ -10,12 +10,12 @@
///
//===----------------------------------------------------------------------===//
+#include "hdr/math_function_macros.h"
#include "src/math/cbrt.h"
#include "utils/MPFRWrapper/mpfr_inc.h"
#include <cstdint>
#include <cstring>
#include <iostream>
-#include <math.h>
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
mpfr_t input;
diff --git a/libc/fuzzing/math/cos_fuzz.cpp b/libc/fuzzing/math/cos_fuzz.cpp
index 6ed1e9ed8f3097..8d3d9fa4989ea0 100644
--- a/libc/fuzzing/math/cos_fuzz.cpp
+++ b/libc/fuzzing/math/cos_fuzz.cpp
@@ -10,12 +10,12 @@
///
//===----------------------------------------------------------------------===//
+#include "hdr/math_function_macros.h"
#include "src/math/cos.h"
#include "utils/MPFRWrapper/mpfr_inc.h"
#include <cstdint>
#include <cstring>
#include <iostream>
-#include <math.h>
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
mpfr_t input;
diff --git a/libc/fuzzing/math/exp10_fuzz.cpp b/libc/fuzzing/math/exp10_fuzz.cpp
index d939948b723a56..1a933f0fded98c 100644
--- a/libc/fuzzing/math/exp10_fuzz.cpp
+++ b/libc/fuzzing/math/exp10_fuzz.cpp
@@ -10,12 +10,12 @@
///
//===----------------------------------------------------------------------===//
+#include "hdr/math_function_macros.h"
#include "src/math/exp10.h"
#include "utils/MPFRWrapper/mpfr_inc.h"
#include <cstdint>
#include <cstring>
#include <iostream>
-#include <math.h>
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
mpfr_t input;
diff --git a/libc/fuzzing/math/exp2_fuzz.cpp b/libc/fuzzing/math/exp2_fuzz.cpp
index a29d3c00da6722..49c399f7ba98a3 100644
--- a/libc/fuzzing/math/exp2_fuzz.cpp
+++ b/libc/fuzzing/math/exp2_fuzz.cpp
@@ -10,12 +10,12 @@
///
//===----------------------------------------------------------------------===//
+#include "hdr/math_function_macros.h"
#include "src/math/exp2.h"
#include "utils/MPFRWrapper/mpfr_inc.h"
#include <cstdint>
#include <cstring>
#include <iostream>
-#include <math.h>
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
mpfr_t input;
diff --git a/libc/fuzzing/math/exp_fuzz.cpp b/libc/fuzzing/math/exp_fuzz.cpp
index 66823596dc6faa..5d6711cd96804d 100644
--- a/libc/fuzzing/math/exp_fuzz.cpp
+++ b/libc/fuzzing/math/exp_fuzz.cpp
@@ -10,12 +10,12 @@
///
//===----------------------------------------------------------------------===//
+#include "hdr/math_function_macros.h"
#include "src/math/exp.h"
#include "utils/MPFRWrapper/mpfr_inc.h"
#include <cstdint>
#include <cstring>
#include <iostream>
-#include <math.h>
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
mpfr_t input;
diff --git a/libc/fuzzing/math/expm1_fuzz.cpp b/libc/fuzzing/math/expm1_fuzz.cpp
index 0690e449c3d23b..852078060b0985 100644
--- a/libc/fuzzing/math/expm1_fuzz.cpp
+++ b/libc/fuzzing/math/expm1_fuzz.cpp
@@ -10,12 +10,12 @@
///
//===----------------------------------------------------------------------===//
+#include "hdr/math_function_macros.h"
#include "src/math/expm1.h"
#include "utils/MPFRWrapper/mpfr_inc.h"
#include <cstdint>
#include <cstring>
#include <iostream>
-#include <math.h>
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
mpfr_t input;
diff --git a/libc/fuzzing/math/f16sqrt_fuzz.cpp b/libc/fuzzing/math/f16sqrt_fuzz.cpp
index 9a097a5553053a..25574dc206c6d1 100644
--- a/libc/fuzzing/math/f16sqrt_fuzz.cpp
+++ b/libc/fuzzing/math/f16sqrt_fuzz.cpp
@@ -10,12 +10,12 @@
///
//===----------------------------------------------------------------------===//
+#include "hdr/math_function_macros.h"
#include "src/math/f16sqrt.h"
#include "utils/MPFRWrapper/mpfr_inc.h"
#include <cstdint>
#include <cstring>
#include <iostream>
-#include <math.h>
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
mpfr_t input;
diff --git a/libc/fuzzing/math/fsqrt_fuzz.cpp b/libc/fuzzing/math/fsqrt_fuzz.cpp
index 06bb231532fd11..aa37b8f18aa5b1 100644
--- a/libc/fuzzing/math/fsqrt_fuzz.cpp
+++ b/libc/fuzzing/math/fsqrt_fuzz.cpp
@@ -10,12 +10,12 @@
///
//===----------------------------------------------------------------------===//
+#include "hdr/math_function_macros.h"
#include "src/math/fsqrt.h"
#include "utils/MPFRWrapper/mpfr_inc.h"
#include <cstdint>
#include <cstring>
#include <iostream>
-#include <math.h>
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
mpfr_t input;
diff --git a/libc/fuzzing/math/hypot_fuzz.cpp b/libc/fuzzing/math/hypot_fuzz.cpp
index 6129e4199f9041..a342936402af62 100644
--- a/libc/fuzzing/math/hypot_fuzz.cpp
+++ b/libc/fuzzing/math/hypot_fuzz.cpp
@@ -10,12 +10,12 @@
///
//===----------------------------------------------------------------------===//
+#include "hdr/math_function_macros.h"
#include "src/math/hypot.h"
#include "utils/MPFRWrapper/mpfr_inc.h"
#include <cstdint>
#include <cstring>
#include <iostream>
-#include <math.h>
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
mpfr_t in_x;
diff --git a/libc/fuzzing/math/log10_fuzz.cpp b/libc/fuzzing/math/log10_fuzz.cpp
index 369408cc288b5a..d88de188c19ed3 100644
--- a/libc/fuzzing/math/log10_fuzz.cpp
+++ b/libc/fuzzing/math/log10_fuzz.cpp
@@ -10,12 +10,12 @@
///
//===----------------------------------------------------------------------===//
+#include "hdr/math_function_macros.h"
#include "src/math/log10.h"
#include "utils/MPFRWrapper/mpfr_inc.h"
#include <cstdint>
#include <cstring>
#include <iostream>
-#include <math.h>
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
mpfr_t input;
diff --git a/libc/fuzzing/math/log1p_fuzz.cpp b/libc/fuzzing/math/log1p_fuzz.cpp
index e02c61a352c1f8..99612316621884 100644
--- a/libc/fuzzing/math/log1p_fuzz.cpp
+++ b/libc/fuzzing/math/log1p_fuzz.cpp
@@ -10,12 +10,12 @@
///
//===----------------------------------------------------------------------===//
+#include "hdr/math_function_macros.h"
#include "src/math/log1p.h"
#include "utils/MPFRWrapper/mpfr_inc.h"
#include <cstdint>
#include <cstring>
#include <iostream>
-#include <math.h>
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
mpfr_t input;
diff --git a/libc/fuzzing/math/log2_fuzz.cpp b/libc/fuzzing/math/log2_fuzz.cpp
index c3e53c639cba98..2f14256ba13d67 100644
--- a/libc/fuzzing/math/log2_fuzz.cpp
+++ b/libc/fuzzing/math/log2_fuzz.cpp
@@ -10,12 +10,12 @@
///
//===----------------------------------------------------------------------===//
+#include "hdr/math_function_macros.h"
#include "src/math/log2.h"
#include "utils/MPFRWrapper/mpfr_inc.h"
#include <cstdint>
#include <cstring>
#include <iostream>
-#include <math.h>
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
mpfr_t input;
diff --git a/libc/fuzzing/math/log_fuzz.cpp b/libc/fuzzing/math/log_fuzz.cpp
index 9618accf3db262..9c7088d207a54b 100644
--- a/libc/fuzzing/math/log_fuzz.cpp
+++ b/libc/fuzzing/math/log_fuzz.cpp
@@ -10,12 +10,12 @@
///
//===----------------------------------------------------------------------===//
+#include "hdr/math_function_macros.h"
#include "src/math/log.h"
#include "utils/MPFRWrapper/mpfr_inc.h"
#include <cstdint>
#include <cstring>
#include <iostream>
-#include <math.h>
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
mpfr_t input;
diff --git a/libc/fuzzing/math/sin_fuzz.cpp b/libc/fuzzing/math/sin_fuzz.cpp
index f6d59c7e496bcc..5c94be6bfe60d4 100644
--- a/libc/fuzzing/math/sin_fuzz.cpp
+++ b/libc/fuzzing/math/sin_fuzz.cpp
@@ -10,12 +10,12 @@
///
//===----------------------------------------------------------------------===//
+#include "hdr/math_function_macros.h"
#include "src/math/sin.h"
#include "utils/MPFRWrapper/mpfr_inc.h"
#include <cstdint>
#include <cstring>
#include <iostream>
-#include <math.h>
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
mpfr_t input;
diff --git a/libc/fuzzing/math/sincos_fuzz.cpp b/libc/fuzzing/math/sincos_fuzz.cpp
index 3d3306721fc476..138f41307f16e2 100644
--- a/libc/fuzzing/math/sincos_fuzz.cpp
+++ b/libc/fuzzing/math/sincos_fuzz.cpp
@@ -10,12 +10,12 @@
///
//===----------------------------------------------------------------------===//
+#include "hdr/math_function_macros.h"
#include "src/math/sincos.h"
#include "utils/MPFRWrapper/mpfr_inc.h"
#include <cstdint>
#include <cstring>
#include <iostream>
-#include <math.h>
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
mpfr_t input;
diff --git a/libc/fuzzing/math/sqrt_fuzz.cpp b/libc/fuzzing/math/sqrt_fuzz.cpp
index 969b4f58e342cf..8e6c600f495701 100644
--- a/libc/fuzzing/math/sqrt_fuzz.cpp
+++ b/libc/fuzzing/math/sqrt_fuzz.cpp
@@ -10,12 +10,12 @@
///
//===----------------------------------------------------------------------===//
+#include "hdr/math_function_macros.h"
#include "src/__support/FPUtil/generic/sqrt.h"
#include "utils/MPFRWrapper/mpfr_inc.h"
#include <cstdint>
#include <cstring>
#include <iostream>
-#include <math.h>
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
mpfr_t input;
diff --git a/libc/fuzzing/math/tan_fuzz.cpp b/libc/fuzzing/math/tan_fuzz.cpp
index 63d3b12866a0ed..f71dc51c29da3e 100644
--- a/libc/fuzzing/math/tan_fuzz.cpp
+++ b/libc/fuzzing/math/tan_fuzz.cpp
@@ -10,12 +10,12 @@
///
//===----------------------------------------------------------------------===//
+#include "hdr/math_function_macros.h"
#include "src/math/tan.h"
#include "utils/MPFRWrapper/mpfr_inc.h"
#include <cstdint>
#include <cstring>
#include <iostream>
-#include <math.h>
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
mpfr_t input;
More information about the libc-commits
mailing list