summaryrefslogtreecommitdiff
path: root/math/gen-tgmath-tests.py
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2017-06-28 16:43:50 +0000
committerJoseph Myers <joseph@codesourcery.com>2017-06-28 16:43:50 +0000
commit0908a38adc6e479d4c52713b09417769282e2db0 (patch)
tree7fc7b5fd4641e22199599a1e96b55fe4f10e39cc /math/gen-tgmath-tests.py
parentd12a22c5d351cd1cc125a6345a949dfbc20f6f91 (diff)
Use clog10 not __clog10 in tgmath.h log10 macro.
As a GNU extension, for _GNU_SOURCE glibc's complex.h provides a clog10 function and tgmath.h supports complex arguments to the log10 macro. However, tgmath.h uses __clog10 not clog10 in defining the macro. There is no namespace reason (ignoring the block-scope namespace issues that would apply equally to *every* function called by tgmath.h macros) for using __clog10 here, since this is only for _GNU_SOURCE so clog10 is always visible when this macro definition is used. Furthermore, __clog10f128 is not exported, so supporting _Float128 in tgmath.h implies using clog10 not __clog10 there. (__clog10 and clog10 aren't used in libstdc++ either, although that library would have a good case for using the __clog10 reserved-namespace export: the standard C++ library includes log10 of a complex number.) This patch duly changes the header to use clog10, and enables tests of the macro for complex arguments. Tested for x86_64. * math/tgmath.h [__USE_GNU] (log10): Use clog10 not __clog10. * math/gen-tgmath-tests.py (Tests.add_all_tests): Test log10 for complex arguments.
Diffstat (limited to 'math/gen-tgmath-tests.py')
-rwxr-xr-xmath/gen-tgmath-tests.py4
1 files changed, 3 insertions, 1 deletions
diff --git a/math/gen-tgmath-tests.py b/math/gen-tgmath-tests.py
index db6553e8dc..31a3bd2e2c 100755
--- a/math/gen-tgmath-tests.py
+++ b/math/gen-tgmath-tests.py
@@ -497,7 +497,9 @@ class Tests(object):
self.add_tests('lgamma', 'r', ['r'])
self.add_tests('llrint', 'long long int', ['r'])
self.add_tests('llround', 'long long int', ['r'])
- self.add_tests('log10', 'r', ['r'])
+ # log10 is real-only in ISO C, but supports complex arguments
+ # as a GNU extension.
+ self.add_tests('log10', 'g', ['g'])
self.add_tests('log1p', 'r', ['r'])
self.add_tests('log2', 'r', ['r'])
self.add_tests('logb', 'r', ['r'])