diff options
author | Tom Tromey <tromey@redhat.com> | 2008-01-22 21:43:49 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 2008-01-22 21:43:49 +0000 |
commit | ec46053bfa418579cf557fa34b140ddd25f1717b (patch) | |
tree | 9982c212d99d03c4d7bd4ef933546ad3b4905e2d /libcpp/macro.c | |
parent | c63173ddb02d9e703eaaa1256fa6a77db180782f (diff) | |
download | gcc-ec46053bfa418579cf557fa34b140ddd25f1717b.zip gcc-ec46053bfa418579cf557fa34b140ddd25f1717b.tar.gz gcc-ec46053bfa418579cf557fa34b140ddd25f1717b.tar.bz2 |
re PR c++/34859 (g++ -D__STDC_LIMIT_MACROS -D__STDC_LIMIT_MACROS causes error)
libcpp
PR c++/34859:
* macro.c (_cpp_create_definition): Handle __STDC_LIMIT_MACROS and
__STDC_CONSTANT_MACROS.
gcc/testsuite
PR c++/34859:
* gcc.dg/cpp/pr34859.c: New file.
From-SVN: r131743
Diffstat (limited to 'libcpp/macro.c')
-rw-r--r-- | libcpp/macro.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/libcpp/macro.c b/libcpp/macro.c index 754e2f7..3a3bf41 100644 --- a/libcpp/macro.c +++ b/libcpp/macro.c @@ -1,7 +1,7 @@ /* Part of CPP library. (Macro and #define handling.) Copyright (C) 1986, 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, - 2006, 2007 Free Software Foundation, Inc. + 2006, 2007, 2008 Free Software Foundation, Inc. Written by Per Bothner, 1994. Based on CCCP program by Paul Rubin, June 1986 Adapted to ANSI C, Richard Stallman, Jan 1987 @@ -1696,7 +1696,13 @@ _cpp_create_definition (cpp_reader *pfile, cpp_hashnode *node) node->type = NT_MACRO; node->value.macro = macro; if (! ustrncmp (NODE_NAME (node), DSC ("__STDC_")) - && ustrcmp (NODE_NAME (node), (const uchar *) "__STDC_FORMAT_MACROS")) + && ustrcmp (NODE_NAME (node), (const uchar *) "__STDC_FORMAT_MACROS") + /* __STDC_LIMIT_MACROS and __STDC_CONSTANT_MACROS are mentioned + in the C standard, as something that one must use in C++. + However DR#593 indicates that these aren't actually mentioned + in the C++ standard. We special-case them anyway. */ + && ustrcmp (NODE_NAME (node), (const uchar *) "__STDC_LIMIT_MACROS") + && ustrcmp (NODE_NAME (node), (const uchar *) "__STDC_CONSTANT_MACROS")) node->flags |= NODE_WARN; return ok; |