forked from OSchip/llvm-project
Summary: All overloads of `::abs` and `std::abs` must be present in both `<cmath>` and `<cstdlib>`. This is problematic to implement because C defines `fabs` in `math.h` and `labs` in `stdlib.h`. This introduces a circular dependency between the two headers. This patch implements that requirement by moving `abs` into `math.h` and making `stdlib.h` include `math.h`. In order to get the underlying C declarations from the "real" `stdlib.h` inside our `math.h` we need some trickery. Specifically we need to make `stdlib.h` include next itself. Suggestions for a cleaner implementation are welcome. Reviewers: mclow.lists, ldionne Reviewed By: ldionne Subscribers: krytarowski, fedor.sergeev, dexonsmith, jdoerfert, jsji, libcxx-commits Differential Revision: https://reviews.llvm.org/D60097 llvm-svn: 359020 |
||
|---|---|---|
| .. | ||
| assert_h.pass.cpp | ||
| ciso646.pass.cpp | ||
| complex.h.pass.cpp | ||
| ctype_h.pass.cpp | ||
| errno_h.pass.cpp | ||
| fenv_h.pass.cpp | ||
| float_h.pass.cpp | ||
| inttypes_h.pass.cpp | ||
| iso646_h.pass.cpp | ||
| limits_h.pass.cpp | ||
| locale_h.pass.cpp | ||
| math_h.pass.cpp | ||
| setjmp_h.pass.cpp | ||
| signal_h.pass.cpp | ||
| stdarg_h.pass.cpp | ||
| stdbool_h.pass.cpp | ||
| stddef_h.pass.cpp | ||
| stdint_h.pass.cpp | ||
| stdio_h.pass.cpp | ||
| stdlib_h.pass.cpp | ||
| string_h.pass.cpp | ||
| tgmath_h.pass.cpp | ||
| time_h.pass.cpp | ||
| uchar_h.pass.cpp | ||
| wchar_h.pass.cpp | ||
| wctype_h.pass.cpp | ||