This PR resolves #96322 and implements the `signbit` macro under a new header `generic-math-macros.h`. This also removed the `TODO` in `math-macros.h` and moves `isfinite`, `isinf`, and `isnan` to the same generic maths header. Finally, a test file `generic-math-macros_test.cpp` that adds coverage to the above 4 macros. Fixes #96322.
263 lines
4.7 KiB
CMake
263 lines
4.7 KiB
CMake
add_custom_target(libc_include_tests)
|
|
add_dependencies(check-libc libc_include_tests)
|
|
|
|
add_libc_test(
|
|
assert_test
|
|
SUITE
|
|
libc_include_tests
|
|
SRCS
|
|
assert_test.cpp
|
|
DEPENDS
|
|
libc.include.llvm-libc-macros.assert_macros
|
|
)
|
|
|
|
add_libc_test(
|
|
sys_queue_test
|
|
SUITE
|
|
libc_include_tests
|
|
SRCS
|
|
sys/queue_test.cpp
|
|
DEPENDS
|
|
libc.include.llvm-libc-macros.sys_queue_macros
|
|
libc.src.__support.char_vector
|
|
libc.src.__support.CPP.string
|
|
COMPILE_OPTIONS
|
|
# This is needed because the __containerof macro uses statement expression.
|
|
-Wno-gnu-statement-expression-from-macro-expansion
|
|
)
|
|
|
|
# stdbit_test only tests our generated stdbit.h, which is not generated in
|
|
# overlay mode.
|
|
if(LLVM_LIBC_FULL_BUILD AND libc.include.stdbit IN_LIST TARGET_PUBLIC_HEADERS)
|
|
add_libc_test(
|
|
stdbit_test
|
|
SUITE
|
|
libc_include_tests
|
|
HDRS
|
|
stdbit_stub.h
|
|
SRCS
|
|
stdbit_test.cpp
|
|
DEPENDS
|
|
libc.include.llvm-libc-macros.stdbit_macros
|
|
libc.include.llvm_libc_common_h
|
|
libc.include.stdbit
|
|
# Intentionally do not depend on libc.src.stdbit.*. The include test is
|
|
# simply testing the macros provided by stdbit.h, not the implementation
|
|
# of the underlying functions which the type generic macros may dispatch
|
|
# to.
|
|
)
|
|
add_libc_test(
|
|
stdbit_c_test
|
|
C_TEST
|
|
UNIT_TEST_ONLY
|
|
SUITE
|
|
libc_include_tests
|
|
HDRS
|
|
stdbit_stub.h
|
|
SRCS
|
|
stdbit_test.c
|
|
COMPILE_OPTIONS
|
|
-Wall
|
|
-Werror
|
|
DEPENDS
|
|
libc.include.llvm-libc-macros.stdbit_macros
|
|
libc.include.llvm_libc_common_h
|
|
libc.include.stdbit
|
|
libc.src.assert.__assert_fail
|
|
# Intentionally do not depend on libc.src.stdbit.*. The include test is
|
|
# simply testing the macros provided by stdbit.h, not the implementation
|
|
# of the underlying functions which the type generic macros may dispatch
|
|
# to.
|
|
)
|
|
endif()
|
|
|
|
add_libc_test(
|
|
stdckdint_test
|
|
SUITE
|
|
libc_include_tests
|
|
SRCS
|
|
stdckdint_test.cpp
|
|
DEPENDS
|
|
libc.include.llvm-libc-macros.stdckdint_macros
|
|
)
|
|
|
|
add_libc_test(
|
|
signbit_test
|
|
SUITE
|
|
libc_include_tests
|
|
SRCS
|
|
signbit_test.cpp
|
|
DEPENDS
|
|
libc.include.llvm-libc-macros.math_function_macros
|
|
)
|
|
|
|
add_libc_test(
|
|
signbitf_test
|
|
SUITE
|
|
libc_include_tests
|
|
SRCS
|
|
signbitf_test.cpp
|
|
DEPENDS
|
|
libc.include.llvm-libc-macros.math_function_macros
|
|
)
|
|
|
|
add_libc_test(
|
|
signbitl_test
|
|
SUITE
|
|
libc_include_tests
|
|
SRCS
|
|
signbitl_test.cpp
|
|
DEPENDS
|
|
libc.include.llvm-libc-macros.math_function_macros
|
|
)
|
|
|
|
add_libc_test(
|
|
isnan_test
|
|
SUITE
|
|
libc_include_tests
|
|
SRCS
|
|
isnan_test.cpp
|
|
DEPENDS
|
|
libc.include.llvm-libc-macros.math_function_macros
|
|
)
|
|
|
|
add_libc_test(
|
|
isnanf_test
|
|
SUITE
|
|
libc_include_tests
|
|
SRCS
|
|
isnanf_test.cpp
|
|
DEPENDS
|
|
libc.include.llvm-libc-macros.math_function_macros
|
|
)
|
|
|
|
add_libc_test(
|
|
isnanl_test
|
|
SUITE
|
|
libc_include_tests
|
|
SRCS
|
|
isnanl_test.cpp
|
|
DEPENDS
|
|
libc.include.llvm-libc-macros.math_function_macros
|
|
)
|
|
|
|
add_libc_test(
|
|
isinf_test
|
|
SUITE
|
|
libc_include_tests
|
|
SRCS
|
|
isinf_test.cpp
|
|
DEPENDS
|
|
libc.include.llvm-libc-macros.math_function_macros
|
|
)
|
|
|
|
add_libc_test(
|
|
isinff_test
|
|
SUITE
|
|
libc_include_tests
|
|
SRCS
|
|
isinff_test.cpp
|
|
DEPENDS
|
|
libc.include.llvm-libc-macros.math_function_macros
|
|
)
|
|
|
|
add_libc_test(
|
|
isinfl_test
|
|
SUITE
|
|
libc_include_tests
|
|
SRCS
|
|
isinfl_test.cpp
|
|
DEPENDS
|
|
libc.include.llvm-libc-macros.math_function_macros
|
|
)
|
|
|
|
add_libc_test(
|
|
isfinite_test
|
|
SUITE
|
|
libc_include_tests
|
|
SRCS
|
|
isfinite_test.cpp
|
|
DEPENDS
|
|
libc.include.llvm-libc-macros.math_function_macros
|
|
)
|
|
|
|
add_libc_test(
|
|
isfinitef_test
|
|
SUITE
|
|
libc_include_tests
|
|
SRCS
|
|
isfinitef_test.cpp
|
|
DEPENDS
|
|
libc.include.llvm-libc-macros.math_function_macros
|
|
)
|
|
|
|
add_libc_test(
|
|
isfinitel_test
|
|
SUITE
|
|
libc_include_tests
|
|
SRCS
|
|
isfinitel_test.cpp
|
|
DEPENDS
|
|
libc.include.llvm-libc-macros.math_function_macros
|
|
)
|
|
|
|
add_libc_test(
|
|
signbit_c_test
|
|
C_TEST
|
|
UNIT_TEST_ONLY
|
|
SUITE
|
|
libc_include_tests
|
|
SRCS
|
|
signbit_test.c
|
|
COMPILE_OPTIONS
|
|
-Wall
|
|
-Werror
|
|
DEPENDS
|
|
libc.include.llvm-libc-macros.math_function_macros
|
|
)
|
|
|
|
add_libc_test(
|
|
isnan_c_test
|
|
C_TEST
|
|
UNIT_TEST_ONLY
|
|
SUITE
|
|
libc_include_tests
|
|
SRCS
|
|
isnan_test.c
|
|
COMPILE_OPTIONS
|
|
-Wall
|
|
-Werror
|
|
DEPENDS
|
|
libc.include.llvm-libc-macros.math_function_macros
|
|
)
|
|
|
|
add_libc_test(
|
|
isinf_c_test
|
|
C_TEST
|
|
UNIT_TEST_ONLY
|
|
SUITE
|
|
libc_include_tests
|
|
SRCS
|
|
isinf_test.c
|
|
COMPILE_OPTIONS
|
|
-Wall
|
|
-Werror
|
|
DEPENDS
|
|
libc.include.llvm-libc-macros.math_function_macros
|
|
)
|
|
|
|
add_libc_test(
|
|
isfinite_c_test
|
|
C_TEST
|
|
UNIT_TEST_ONLY
|
|
SUITE
|
|
libc_include_tests
|
|
SRCS
|
|
isfinite_test.c
|
|
COMPILE_OPTIONS
|
|
-Wall
|
|
-Werror
|
|
DEPENDS
|
|
libc.include.llvm-libc-macros.math_function_macros
|
|
)
|