mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-29 11:41:21 +03:00
Do not use const attribute for nan functions (bug 23277).
As in https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86113 for __builtin_nan, bits/mathcalls.h wrongly declares the nan function with the __const__ attribute. Because the function reads memory pointed to by an argument, it's only pure, not const. This patch removes the incorrect attribute and adds a testcase for the bug. No __pure__ attribute is added to replace the incorrect __const__ one, since that would introduce problems when using GCC versions that have the incorrect built-in __const__ attribute and warn for the combination of those two attributes. Tested for x86_64. [BZ #23277] * math/bits/mathcalls.h [__USE_ISOC99] (nan): Do not use __const__ attribute. * math/test-nan-const.c: New file. * math/Makefile (tests): Add test-nan-const. (CFLAGS-test-nan-const.c): New variable.
This commit is contained in:
@ -198,7 +198,7 @@ __MATHCALLX (copysign,, (_Mdouble_ __x, _Mdouble_ __y), (__const__));
|
||||
|
||||
#ifdef __USE_ISOC99
|
||||
/* Return representation of qNaN for double type. */
|
||||
__MATHCALLX (nan,, (const char *__tagb), (__const__));
|
||||
__MATHCALL (nan,, (const char *__tagb));
|
||||
#endif
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user