V3 PATCH: Undefine conflicting macros
Mark P Mitchell
mark@codesourcery.com
Thu Nov 2 22:22:00 GMT 2000
These headers need to follow the lead of wctype.h in undefining various
macros that have the same names as the functions being defined.
With this patch we have:
pass/fail results: 172/10
on IRIX 6.5. It looks like things are almost as good as on GNU/Linux,
which is very promising.
--
Mark Mitchell mark@codesourcery.com
CodeSourcery, LLC http://www.codesourcery.com
Thu Nov 2 23:19:20 2000 Mark P Mitchell <mark@codesourcery.com>
* include/c/bits/std_cctype.h: Undefine macros that conflict
with function names defined in this file.
* include/c/bits/std_cstdio.h: Likewise.
Index: include/c/bits/std_cctype.h
===================================================================
RCS file: /cvs/gcc/egcs/libstdc++-v3/include/c/bits/std_cctype.h,v
retrieving revision 1.2
diff -c -p -r1.2 std_cctype.h
*** std_cctype.h 2000/10/31 01:26:05 1.2
--- std_cctype.h 2000/11/03 06:14:07
***************
*** 41,46 ****
--- 41,62 ----
#pragma GCC system_header
#include_next <ctype.h>
+ // Get rid of those macros defined in <ctype.h> in lieu of real functions.
+ #undef isalnum
+ #undef isalpha
+ #undef isblank
+ #undef iscntrl
+ #undef isdigit
+ #undef isgraph
+ #undef islower
+ #undef isprint
+ #undef ispunct
+ #undef isspace
+ #undef isupper
+ #undef isxdigit
+ #undef tolower
+ #undef toupper
+
namespace std
{
extern "C" int isalnum(int __c);
Index: include/c/bits/std_cstdio.h
===================================================================
RCS file: /cvs/gcc/egcs/libstdc++-v3/include/c/bits/std_cstdio.h,v
retrieving revision 1.2
diff -c -p -r1.2 std_cstdio.h
*** std_cstdio.h 2000/10/31 01:26:05 1.2
--- std_cstdio.h 2000/11/03 06:14:07
***************
*** 41,46 ****
--- 41,56 ----
#pragma GCC system_header
#include_next <stdio.h>
+ // Get rid of those macros defined in <stdio.h> in lieu of real functions.
+ #undef clearerr
+ #undef feof
+ #undef ferror
+ #undef fileno
+ #undef getc
+ #undef getchar
+ #undef putc
+ #undef putchar
+
namespace std
{
using ::FILE;
More information about the Libstdc++
mailing list