mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-23 03:10:05 +00:00
Fix non-__GNUC__ definitions of __inline and __restrict (bug 17721).
Bug 17721 reports that the non-__GNUC__ definitions of __inline and __restrict are suboptimal, in that they are defined to empty when they could be defined to inline and restrict for appropriate language versions. This patch makes those fixes. Tested for x86_64 (however, I have not done any testing with an actual non-__GNUC__ compiler and it's likely such compilers may have other problems with glibc headers). [BZ #17721] * misc/sys/cdefs.h [!__GNUC__ && (__cplusplus || (__STDC_VERSION__ && __STDC_VERSION__ >= 199901L))] (__inline): Define to inline. [!__GNUC_PREREQ (2,92) && __STDC_VERSION__ && __STDC_VERSION__ >= 199901L] (__restrict): Define to restrict.
This commit is contained in:
parent
d92c275997
commit
383e87c96b
@ -1,5 +1,11 @@
|
||||
2018-02-06 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
[BZ #17721]
|
||||
* misc/sys/cdefs.h [!__GNUC__ && (__cplusplus || (__STDC_VERSION__
|
||||
&& __STDC_VERSION__ >= 199901L))] (__inline): Define to inline.
|
||||
[!__GNUC_PREREQ (2,92) && __STDC_VERSION__ && __STDC_VERSION__ >=
|
||||
199901L] (__restrict): Define to restrict.
|
||||
|
||||
[BZ #19667]
|
||||
* string/testcopy.c: Include <support/support.h>. Do not include
|
||||
<malloc.h>. Use <support/test-driver.c>.
|
||||
|
@ -72,7 +72,12 @@
|
||||
|
||||
#else /* Not GCC. */
|
||||
|
||||
# define __inline /* No inline functions. */
|
||||
# if (defined __cplusplus \
|
||||
|| (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L))
|
||||
# define __inline inline
|
||||
# else
|
||||
# define __inline /* No inline functions. */
|
||||
# endif
|
||||
|
||||
# define __THROW
|
||||
# define __THROWNL
|
||||
@ -368,7 +373,11 @@
|
||||
|
||||
/* __restrict is known in EGCS 1.2 and above. */
|
||||
#if !__GNUC_PREREQ (2,92)
|
||||
# define __restrict /* Ignore */
|
||||
# if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L
|
||||
# define __restrict restrict
|
||||
# else
|
||||
# define __restrict /* Ignore */
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* ISO C99 also allows to declare arrays as non-overlapping. The syntax is
|
||||
|
Loading…
Reference in New Issue
Block a user