[libcxx-commits] [PATCH] D59937: Added implementation of expint (Math Special Functions)
Andre Brand via Phabricator via libcxx-commits
libcxx-commits at lists.llvm.org
Sat Mar 30 03:11:46 PDT 2019
thebrandre updated this revision to Diff 192967.
thebrandre added a comment.
- Fixed shared linking on Windows : the internal implementation __libcpp_expint<T> is no longer exported via explicit instantiation of the template. Instead, there are now three functions __libcpp_expintf, __libcpp_expint, and __libcpp_expintl annotated with _LIBCPP_FUNC_VIS. I also put them into namespace std.
- Added "UNSUPPORTED: c++98, c++03, c++11, c++14" to the unit tests because std::expint is ifdef'ed out for versions prior to c++17.
Open questions:
- The internal implementations __libcpp_expintf, __libcpp_expint, and __libcpp_expintl are currently exported even if _LIBCPP_STD_VER is 14 or less because the declarations with _LIBCPP_FUNC_VIS are outside the #if _LIBCPP_STD_VER > 14 ... so one might link the same binaries for all values of _LIBCPP_STD_VER. I am not quite sure if this is desired or aspired ...
- The internal implementations could be put inside extern "C". But there is no actual benefit in doing so because the rest of the library doesn't do that either. Is that correct?
Sorry for all the corrections. I am new to the project ... but I have some hope that I finally got the hang of it. ;-)
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D59937/new/
https://reviews.llvm.org/D59937
Files:
libcxx/include/__cmath
libcxx/include/cmath
libcxx/include/math.h
libcxx/lib/CMakeLists.txt
libcxx/src/cmath/expint.cpp
libcxx/test/std/numerics/expint/expint_bounds.pass.cpp
libcxx/test/std/numerics/expint/expint_comparisons.pass.cpp
libcxx/test/std/numerics/expint/expint_limits.pass.cpp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D59937.192967.patch
Type: text/x-patch
Size: 51317 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20190330/96aea11c/attachment-0001.bin>
More information about the libcxx-commits
mailing list