Fix C11 header changes for C++.

This commit is contained in:
Joseph Myers 2012-01-06 18:11:50 +00:00
parent 5e0d030065
commit 8ecd6b2a12
4 changed files with 16 additions and 6 deletions

View File

@ -1,3 +1,10 @@
2012-01-06 Joseph Myers <joseph@codesourcery.com>
[BZ #13566]
* assert/assert.h (static_assert): Don't define for C++.
* libio/stdio.h (gets): Do declare for C++ <= C++11.
* wcsmbs/uchar.h (char16_t, char32_t): Don't typedef for C++11.
2012-01-03 Ulrich Drepper <drepper@gmail.com> 2012-01-03 Ulrich Drepper <drepper@gmail.com>
* iconv/loop.c (single loop): Fix assertion in storing of * iconv/loop.c (single loop): Fix assertion in storing of

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991,1992,1994-2001,2003,2004,2007,2011 /* Copyright (C) 1991,1992,1994-2001,2003,2004,2007,2011,2012
Free Software Foundation, Inc. Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
@ -115,7 +115,7 @@ __END_DECLS
#endif /* NDEBUG. */ #endif /* NDEBUG. */
#ifdef __USE_ISOC11 #if defined __USE_ISOC11 && !defined __cplusplus
/* Static assertion. Requires support in the compiler. */ /* Static assertion. Requires support in the compiler. */
# undef static_assert # undef static_assert
# define static_assert _Static_assert # define static_assert _Static_assert

View File

@ -1,5 +1,5 @@
/* Define ISO C stdio on top of C++ iostreams. /* Define ISO C stdio on top of C++ iostreams.
Copyright (C) 1991, 1994-2010, 2011 Free Software Foundation, Inc. Copyright (C) 1991, 1994-2011, 2012 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -628,13 +628,16 @@ __BEGIN_NAMESPACE_STD
extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream) extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
__wur; __wur;
#ifndef __USE_ISOC11 #if !defined __USE_ISOC11 \
|| (defined __cplusplus && __cplusplus <= 201103L)
/* Get a newline-terminated string from stdin, removing the newline. /* Get a newline-terminated string from stdin, removing the newline.
DO NOT USE THIS FUNCTION!! There is no limit on how much it will read. DO NOT USE THIS FUNCTION!! There is no limit on how much it will read.
The function has been officially removed in ISO C11. This opportunity The function has been officially removed in ISO C11. This opportunity
is used to also remove it from the GNU feature list. It is now only is used to also remove it from the GNU feature list. It is now only
available when explicitly using an old ISO C, Unix, or POSIX standard. available when explicitly using an old ISO C, Unix, or POSIX standard.
GCC defines _GNU_SOURCE when building C++ code and the function is still
in C++11, so it is also available for C++.
This function is a possible cancellation point and therefore not This function is a possible cancellation point and therefore not
marked with __THROW. */ marked with __THROW. */

View File

@ -1,4 +1,4 @@
/* Copyright (C) 2011 Free Software Foundation, Inc. /* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -40,7 +40,7 @@ __END_NAMESPACE_C99
#endif #endif
#ifdef __GNUC__ #if defined __GNUC__ && !defined __USE_ISOCXX11
/* Define the 16-bit and 32-bit character types. Use the information /* Define the 16-bit and 32-bit character types. Use the information
provided by the compiler. */ provided by the compiler. */
# if !defined __CHAR16_TYPE__ || !defined __CHAR32_TYPE__ # if !defined __CHAR16_TYPE__ || !defined __CHAR32_TYPE__