/* Part of CPP library.
Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007,
- 2008, 2009 Free Software Foundation, Inc.
+ 2008, 2009, 2010 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
/* Type of note. The 9 'from' trigraph characters represent those
trigraphs, '\\' an escaped newline, ' ' an escaped newline with
- intervening space, and anything else is invalid. */
+ intervening space, 0 represents a note that has already been handled,
+ and anything else is invalid. */
unsigned int type;
};
/* Name of the macro. */
char *name;
/* The stored macro content. */
- cpp_macro *value;
+ unsigned char *definition;
+
+ /* Definition line number. */
+ source_location line;
+ /* If macro defined in system header. */
+ unsigned int syshdr : 1;
+ /* Nonzero if it has been expanded or had its existence tested. */
+ unsigned int used : 1;
+
+ /* Mark if we save an undefined macro. */
+ unsigned int is_undef : 1;
};
/* A cpp_reader encapsulates the "state" of a pre-processor run.
{
return pfile->buffer ? pfile->buffer->sysp : 0;
}
-#define CPP_PEDANTIC(PF) CPP_OPTION (PF, pedantic)
-#define CPP_WTRADITIONAL(PF) CPP_OPTION (PF, warn_traditional)
+#define CPP_PEDANTIC(PF) CPP_OPTION (PF, cpp_pedantic)
+#define CPP_WTRADITIONAL(PF) CPP_OPTION (PF, cpp_warn_traditional)
static inline int cpp_in_primary_file (cpp_reader *);
static inline int