From c904ad45187326cf47abff0819ab57b971c7c78a Mon Sep 17 00:00:00 2001 From: Howard Hinnant Date: Thu, 26 Jul 2012 20:01:13 +0000 Subject: [PATCH] Patch by Andrew C. Morrow: shims to work around macroized getc and putc on linux. On my eglibc 2.13 based Debian system 'getc' is a macro defined in /usr/include/stdio.h. This decision to make it a macro doesn't seem to be guarded by any feature test macro as far as I can see. llvm-svn: 160799 --- libcxx/include/cstdio | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/libcxx/include/cstdio b/libcxx/include/cstdio index 2a6ec762deae..718d2f715516 100644 --- a/libcxx/include/cstdio +++ b/libcxx/include/cstdio @@ -103,6 +103,18 @@ void perror(const char* s); #pragma GCC system_header #endif +#ifdef getc +inline _LIBCPP_INLINE_VISIBILITY int __libcpp_getc(FILE* __stream) {return getc(__stream);} +#undef getc +inline _LIBCPP_INLINE_VISIBILITY int getc(FILE* __stream) {return __libcpp_getc(__stream);} +#endif // getc + +#ifdef putc +inline _LIBCPP_INLINE_VISIBILITY int __libcpp_putc(int __c, FILE* __stream) {return putc(__c, __stream);} +#undef putc +inline _LIBCPP_INLINE_VISIBILITY int putc(int __c, FILE* __stream) {return __libcpp_putc(__c, __stream);} +#endif // putc + _LIBCPP_BEGIN_NAMESPACE_STD using ::FILE;