This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [C++ Patch] Define __cplusplus == 201300L for -std=c++1y


On Fri, Apr 26, 2013 at 12:32:40PM +0200, Paolo Carlini wrote:
> On 04/24/2013 08:20 PM, Jason Merrill wrote:
> >On 04/24/2013 02:02 PM, Paolo Carlini wrote:
> >>+#if __cplusplus < 201300L
> >
> >Don't test for this value.  Use <= 201103L instead.
> >
> >OK with that change.
> Thanks Jason.
> 
> Today I'm noticing an issue with the underlying <stdio> from glibc,
> which makes our <cstdio> unusable. It does have:
> 
> #if !defined __USE_ISOC11 \
>     || (defined __cplusplus && __cplusplus <= 201103L)
> /* 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.
> 
>    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
>    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
>    marked with __THROW.  */
> extern char *gets (char *__s) __wur __attribute_deprecated__;
> 
> I don't think the header should check __cplusplus <= 201103L like
> that. Jakub, Jason, what do you think?

I guess Ulrich added this with the expectation that gets will be also
removed from C++1y.  Has there been any discussions regarding that in the WG
already?

	Jakub


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]