Message ID | 20170613200022.5056-1-yselkowi@redhat.com |
---|---|
State | New |
Headers | show |
On Jun 13 15:00, Yaakov Selkowitz wrote: > While POSIX allows these functions to also be defined as macros in C, in > C++ this is not allowed, and prevents these names (particularly feof) from > being used in a custom namespace. > > Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com> > --- > newlib/libc/include/stdio.h | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/newlib/libc/include/stdio.h b/newlib/libc/include/stdio.h > index 097b0f665..1c32423d3 100644 > --- a/newlib/libc/include/stdio.h > +++ b/newlib/libc/include/stdio.h > @@ -718,6 +718,7 @@ _ELIDABLE_INLINE int __sputc_r(struct _reent *_ptr, int _c, FILE *_p) { > #define __sclearerr(p) ((void)((p)->_flags &= ~(__SERR|__SEOF))) > #define __sfileno(p) ((p)->_file) > > +#ifndef __cplusplus > #ifndef _REENT_SMALL > #define feof(p) __sfeof(p) > #define ferror(p) __sferror(p) > @@ -740,6 +741,7 @@ _ELIDABLE_INLINE int __sputc_r(struct _reent *_ptr, int _c, FILE *_p) { > #define putc(x, fp) __sputc_r(_REENT, x, fp) > #endif /* lint */ > #endif /* __CYGWIN__ */ > +#endif /* __cplusplus */ > > #if __MISC_VISIBLE > /* fast always-buffered version, true iff error */ > -- > 2.12.3 ACK to both patches. Thanks, Corinna -- Corinna Vinschen Cygwin Maintainer Red Hat
diff --git a/newlib/libc/include/stdio.h b/newlib/libc/include/stdio.h index 097b0f665..1c32423d3 100644 --- a/newlib/libc/include/stdio.h +++ b/newlib/libc/include/stdio.h @@ -718,6 +718,7 @@ _ELIDABLE_INLINE int __sputc_r(struct _reent *_ptr, int _c, FILE *_p) { #define __sclearerr(p) ((void)((p)->_flags &= ~(__SERR|__SEOF))) #define __sfileno(p) ((p)->_file) +#ifndef __cplusplus #ifndef _REENT_SMALL #define feof(p) __sfeof(p) #define ferror(p) __sferror(p) @@ -740,6 +741,7 @@ _ELIDABLE_INLINE int __sputc_r(struct _reent *_ptr, int _c, FILE *_p) { #define putc(x, fp) __sputc_r(_REENT, x, fp) #endif /* lint */ #endif /* __CYGWIN__ */ +#endif /* __cplusplus */ #if __MISC_VISIBLE /* fast always-buffered version, true iff error */
While POSIX allows these functions to also be defined as macros in C, in C++ this is not allowed, and prevents these names (particularly feof) from being used in a custom namespace. Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com> --- newlib/libc/include/stdio.h | 2 ++ 1 file changed, 2 insertions(+) -- 2.12.3