1*7f7b0dc4SSiva Chandra Reddy //===-- nextafter_differential_fuzz.cpp
2*7f7b0dc4SSiva Chandra Reddy //---------------------------------------===//
3*7f7b0dc4SSiva Chandra Reddy //
4*7f7b0dc4SSiva Chandra Reddy // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5*7f7b0dc4SSiva Chandra Reddy // See https://llvm.org/LICENSE.txt for license information.
6*7f7b0dc4SSiva Chandra Reddy // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7*7f7b0dc4SSiva Chandra Reddy //
8*7f7b0dc4SSiva Chandra Reddy //===----------------------------------------------------------------------===//
9*7f7b0dc4SSiva Chandra Reddy ///
10*7f7b0dc4SSiva Chandra Reddy /// Differential fuzz test for llvm-libc nextafter implementation.
11*7f7b0dc4SSiva Chandra Reddy ///
12*7f7b0dc4SSiva Chandra Reddy //===----------------------------------------------------------------------===//
13*7f7b0dc4SSiva Chandra Reddy 
14*7f7b0dc4SSiva Chandra Reddy #include "fuzzing/math/TwoInputSingleOutputDiff.h"
15*7f7b0dc4SSiva Chandra Reddy 
16*7f7b0dc4SSiva Chandra Reddy #include "src/math/nextafter.h"
17*7f7b0dc4SSiva Chandra Reddy #include "src/math/nextafterf.h"
18*7f7b0dc4SSiva Chandra Reddy #include "src/math/nextafterl.h"
19*7f7b0dc4SSiva Chandra Reddy 
LLVMFuzzerTestOneInput(const uint8_t * data,size_t size)20*7f7b0dc4SSiva Chandra Reddy extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
21*7f7b0dc4SSiva Chandra Reddy   TwoInputSingleOutputDiff<float, float>(&__llvm_libc::nextafterf,
22*7f7b0dc4SSiva Chandra Reddy                                          &::nextafterf, data, size);
23*7f7b0dc4SSiva Chandra Reddy   TwoInputSingleOutputDiff<double, double>(&__llvm_libc::nextafter,
24*7f7b0dc4SSiva Chandra Reddy                                            &::nextafter, data, size);
25*7f7b0dc4SSiva Chandra Reddy   return 0;
26*7f7b0dc4SSiva Chandra Reddy }
27