aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/cpperror.c19
-rw-r--r--gcc/cppexp.c20
-rw-r--r--gcc/cppfiles.c30
-rw-r--r--gcc/cpphash.c8
-rw-r--r--gcc/cpphash.h7
-rw-r--r--gcc/cppinit.c29
-rw-r--r--gcc/cpplex.c19
-rw-r--r--gcc/cpplib.c59
-rw-r--r--gcc/cpplib.h4
-rw-r--r--gcc/cppmacro.c2
-rw-r--r--gcc/cppmain.c2
12 files changed, 99 insertions, 106 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 29302fe..c7da52f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2002-01-03 Neil Booth <neil@daikokuya.demon.co.uk>
+
+ * cpperror.c: Update comments and copyright.
+ * cppexp.c, cppfiles.c, cpphash.c, cpphash.h, cppinit.c,
+ cpplex.c, cpplib.c, cpplib.h, cppmacro.c, cppmain.c: Similarly.
+
2002-01-03 John David Anglin <dave@hiauly1.hia.nrc.ca>
* collect2.c (main): Use strcmp when testing for "-shared".
diff --git a/gcc/cpperror.c b/gcc/cpperror.c
index 6a3b0c1..375dc2b 100644
--- a/gcc/cpperror.c
+++ b/gcc/cpperror.c
@@ -1,6 +1,6 @@
/* Default error handlers for CPP Library.
- Copyright (C) 1986, 1987, 1989, 1992, 1993, 1994, 1995, 1998, 1999, 2000
- Free Software Foundation, Inc.
+ Copyright (C) 1986, 1987, 1989, 1992, 1993, 1994, 1995, 1998, 1999, 2000,
+ 2001, 2002 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
@@ -36,6 +36,8 @@ static void print_location PARAMS ((cpp_reader *, unsigned int, unsigned int));
#define v_message(msgid, ap) \
do { vfprintf (stderr, _(msgid), ap); putc ('\n', stderr); } while (0)
+/* Print the logical file location (LINE, COL) in preparation for a
+ diagnostic. Outputs the #include chain if it has changed. */
static void
print_location (pfile, line, col)
cpp_reader *pfile;
@@ -77,7 +79,6 @@ print_location (pfile, line, col)
counter, etc. LINE is the logical line number; zero means to print
at the location of the previously lexed token, which tends to be the
correct place by default. Returns 0 if the error has been suppressed. */
-
int
_cpp_begin_message (pfile, code, line, column)
cpp_reader *pfile;
@@ -137,7 +138,6 @@ _cpp_begin_message (pfile, code, line, column)
/* For reporting internal errors. Prints "internal error: " for you,
otherwise identical to cpp_fatal. */
-
void
cpp_ice VPARAMS ((cpp_reader *pfile, const char *msgid, ...))
{
@@ -156,7 +156,6 @@ cpp_ice VPARAMS ((cpp_reader *pfile, const char *msgid, ...))
(We do not exit, to support use of cpplib as a library.
Instead, it is the caller's responsibility to check
CPP_FATAL_ERRORS. */
-
void
cpp_fatal VPARAMS ((cpp_reader *pfile, const char *msgid, ...))
{
@@ -170,6 +169,7 @@ cpp_fatal VPARAMS ((cpp_reader *pfile, const char *msgid, ...))
VA_CLOSE (ap);
}
+/* Print an error at the location of the previously lexed token. */
void
cpp_error VPARAMS ((cpp_reader * pfile, const char *msgid, ...))
{
@@ -183,6 +183,7 @@ cpp_error VPARAMS ((cpp_reader * pfile, const char *msgid, ...))
VA_CLOSE (ap);
}
+/* Print an error at a specific location. */
void
cpp_error_with_line VPARAMS ((cpp_reader *pfile, int line, int column,
const char *msgid, ...))
@@ -208,6 +209,7 @@ cpp_error_from_errno (pfile, name)
cpp_error (pfile, "%s: %s", name, xstrerror (errno));
}
+/* Print a warning at the location of the previously lexed token. */
void
cpp_warning VPARAMS ((cpp_reader * pfile, const char *msgid, ...))
{
@@ -221,6 +223,7 @@ cpp_warning VPARAMS ((cpp_reader * pfile, const char *msgid, ...))
VA_CLOSE (ap);
}
+/* Print a warning at a specific location. */
void
cpp_warning_with_line VPARAMS ((cpp_reader * pfile, int line, int column,
const char *msgid, ...))
@@ -237,6 +240,7 @@ cpp_warning_with_line VPARAMS ((cpp_reader * pfile, int line, int column,
VA_CLOSE (ap);
}
+/* Pedwarn at the location of the previously lexed token. */
void
cpp_pedwarn VPARAMS ((cpp_reader * pfile, const char *msgid, ...))
{
@@ -250,6 +254,7 @@ cpp_pedwarn VPARAMS ((cpp_reader * pfile, const char *msgid, ...))
VA_CLOSE (ap);
}
+/* Pedwarn at a specific location. */
void
cpp_pedwarn_with_line VPARAMS ((cpp_reader * pfile, int line, int column,
const char *msgid, ...))
@@ -266,7 +271,7 @@ cpp_pedwarn_with_line VPARAMS ((cpp_reader * pfile, int line, int column,
VA_CLOSE (ap);
}
-/* Print an error message not associated with a file. */
+/* Print an error message not associated with the translation unit. */
void
cpp_notice VPARAMS ((cpp_reader *pfile, const char *msgid, ...))
{
@@ -282,6 +287,8 @@ cpp_notice VPARAMS ((cpp_reader *pfile, const char *msgid, ...))
VA_CLOSE (ap);
}
+/* Print an error message originating from ERRNO and not associated
+ with the translation unit. */
void
cpp_notice_from_errno (pfile, name)
cpp_reader *pfile;
diff --git a/gcc/cppexp.c b/gcc/cppexp.c
index f7fe054..1f225c3 100644
--- a/gcc/cppexp.c
+++ b/gcc/cppexp.c
@@ -1,6 +1,6 @@
/* Parse C expressions for cpplib.
- Copyright (C) 1987, 1992, 1994, 1995, 1997, 1998, 1999, 2000, 2001
- Free Software Foundation.
+ Copyright (C) 1987, 1992, 1994, 1995, 1997, 1998, 1999, 2000, 2001,
+ 2002 Free Software Foundation.
Contributed by Per Bothner, 1994.
This program is free software; you can redistribute it and/or modify it
@@ -85,10 +85,9 @@ static const struct suffix vsuf_3[] = {
};
#define Nsuff(tab) (sizeof tab / sizeof (struct suffix))
-/* Parse and convert an integer for #if. Accepts decimal, hex, or
- octal with or without size suffixes. Returned op is CPP_ERROR on
- error, otherwise it is a CPP_NUMBER. */
-
+/* Parse and convert what is presumably an integer in TOK. Accepts
+ decimal, hex, or octal with or without size suffixes. Returned op
+ is CPP_ERROR on error, otherwise it is a CPP_NUMBER. */
static struct op
parse_number (pfile, tok)
cpp_reader *pfile;
@@ -206,6 +205,7 @@ parse_number (pfile, tok)
return op;
}
+/* Handle meeting "defined" in a preprocessor expression. */
static struct op
parse_defined (pfile)
cpp_reader *pfile;
@@ -275,7 +275,6 @@ parse_defined (pfile)
(an interpreted preprocessing number or character constant, or the
result of the "defined" or "#" operators), CPP_ERROR on error,
CPP_EOF, or the type of an operator token. */
-
static struct op
lex (pfile, skip_evaluation)
cpp_reader *pfile;
@@ -372,6 +371,7 @@ lex (pfile, skip_evaluation)
return op;
}
+/* Warn if appropriate on overflow. */
static void
integer_overflow (pfile)
cpp_reader *pfile;
@@ -380,6 +380,8 @@ integer_overflow (pfile)
cpp_pedwarn (pfile, "integer overflow in preprocessor expression");
}
+/* Handle shifting A left by B bits. UNSIGNEDP is non-zero if A is
+ unsigned. */
static HOST_WIDEST_INT
left_shift (pfile, a, unsignedp, b)
cpp_reader *pfile;
@@ -404,6 +406,8 @@ left_shift (pfile, a, unsignedp, b)
}
}
+/* Handle shifting A right by B bits. UNSIGNEDP is non-zero if A is
+ unsigned. */
static HOST_WIDEST_INT
right_shift (pfile, a, unsignedp, b)
cpp_reader *pfile ATTRIBUTE_UNUSED;
@@ -547,7 +551,6 @@ op_to_prio[] =
/* Parse and evaluate a C expression, reading from PFILE.
Returns the truth value of the expression. */
-
int
_cpp_parse_expr (pfile)
cpp_reader *pfile;
@@ -870,6 +873,7 @@ _cpp_parse_expr (pfile)
return result;
}
+/* Output OP as text for diagnostics. */
static const unsigned char *
op_as_text (pfile, op)
cpp_reader *pfile;
diff --git a/gcc/cppfiles.c b/gcc/cppfiles.c
index 11fc325..b60e4eb 100644
--- a/gcc/cppfiles.c
+++ b/gcc/cppfiles.c
@@ -1,6 +1,6 @@
/* Part of CPP library. (include file handling)
Copyright (C) 1986, 1987, 1989, 1992, 1993, 1994, 1995, 1998,
- 1999, 2000, 2001 Free Software Foundation, Inc.
+ 1999, 2000, 2001, 2002 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
@@ -212,7 +212,6 @@ _cpp_fake_include (pfile, fname)
Returns an include_file structure with an open file descriptor on
success, or NULL on failure. */
-
static struct include_file *
open_file (pfile, filename)
cpp_reader *pfile;
@@ -276,7 +275,6 @@ open_file (pfile, filename)
stack, unless there are errors, or the file is not re-included
because of e.g. multiple-include guards. Returns true if a buffer
is stacked. */
-
static bool
stack_include_file (pfile, inc)
cpp_reader *pfile;
@@ -351,7 +349,6 @@ stack_include_file (pfile, inc)
and block devices.
FIXME: Flush file cache and try again if we run out of memory. */
-
static int
read_include_file (pfile, inc)
cpp_reader *pfile;
@@ -467,6 +464,7 @@ read_include_file (pfile, inc)
return 1;
}
+/* Drop INC's buffer from memory, if we are unlikely to need it again. */
static void
purge_cache (inc)
struct include_file *inc;
@@ -524,8 +522,7 @@ cpp_included (pfile, fname)
un-openable), in which case an error code will be in errno. If
there is no include path to use it returns NO_INCLUDE_PATH,
otherwise an include_file structure. If this request originates
- from a #include_next directive, set INCLUDE_NEXT to true. */
-
+ from a directive of TYPE #include_next, set INCLUDE_NEXT to true. */
static struct include_file *
find_include_file (pfile, header, type)
cpp_reader *pfile;
@@ -612,6 +609,7 @@ _cpp_report_missing_guards (pfile)
(PTR) &banner);
}
+/* Callback function for splay_tree_foreach(). */
static int
report_missing_guard (n, b)
splay_tree_node n;
@@ -633,7 +631,9 @@ report_missing_guard (n, b)
return 0;
}
-/* Create a dependency, or issue an error message as appropriate. */
+/* Create a dependency for file FNAME, or issue an error message as
+ appropriate. ANGLE_BRACKETS is non-zero if the file was bracketed
+ like <..>. */
static void
handle_missing_header (pfile, fname, angle_brackets)
cpp_reader *pfile;
@@ -679,8 +679,9 @@ handle_missing_header (pfile, fname, angle_brackets)
cpp_error_from_errno (pfile, fname);
}
-/* Handles #include-family directives, and the command line -imacros
- and -include. Returns true if a buffer was stacked. */
+/* Handles #include-family directives (distinguished by TYPE),
+ including HEADER, and the command line -imacros and -include.
+ Returns true if a buffer was stacked. */
bool
_cpp_execute_include (pfile, header, type)
cpp_reader *pfile;
@@ -746,8 +747,8 @@ _cpp_read_file (pfile, fname)
return stack_include_file (pfile, f);
}
-/* Do appropriate cleanup when a file buffer is popped off the input
- stack. Push the next -include file, if any remain. */
+/* Do appropriate cleanup when a file INC's buffer is popped off the
+ input stack. Push the next -include file, if any remain. */
bool
_cpp_pop_file_buffer (pfile, inc)
cpp_reader *pfile;
@@ -841,7 +842,6 @@ search_from (pfile, type)
such as DOS. The format of the file name map file is just a series
of lines with two tokens on each line. The first token is the name
to map, and the second token is the actual name to use. */
-
struct file_name_map
{
struct file_name_map *map_next;
@@ -852,8 +852,7 @@ struct file_name_map
#define FILE_NAME_MAP_FILE "header.gcc"
/* Read a space delimited string of unlimited length from a stdio
- file. */
-
+ file F. */
static char *
read_filename_string (ch, f)
int ch;
@@ -884,7 +883,6 @@ read_filename_string (ch, f)
}
/* This structure holds a linked list of file name maps, one per directory. */
-
struct file_name_map_list
{
struct file_name_map_list *map_list_next;
@@ -893,7 +891,6 @@ struct file_name_map_list
};
/* Read the file name map file for DIRNAME. */
-
static struct file_name_map *
read_name_map (pfile, dirname)
cpp_reader *pfile;
@@ -1069,7 +1066,6 @@ remove_component_p (path)
Guarantees no trailing slashes. All transforms reduce the length
of the string. Returns PATH. errno is 0 if no error occurred;
nonzero if an error occurred when using stat () or lstat (). */
-
char *
_cpp_simplify_pathname (path)
char *path;
diff --git a/gcc/cpphash.c b/gcc/cpphash.c
index 39a3de7..8be1b2f 100644
--- a/gcc/cpphash.c
+++ b/gcc/cpphash.c
@@ -1,6 +1,6 @@
/* Hash tables for the CPP library.
Copyright (C) 1986, 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1998,
- 1999, 2000 Free Software Foundation, Inc.
+ 1999, 2000, 2001, 2002 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
@@ -32,7 +32,6 @@ static cpp_hashnode *alloc_node PARAMS ((hash_table *));
/* Return an identifier node for hashtable.c. Used by cpplib except
when integrated with the C front ends. */
-
static cpp_hashnode *
alloc_node (table)
hash_table *table;
@@ -47,7 +46,6 @@ alloc_node (table)
/* Set up the identifier hash table. Use TABLE if non-null, otherwise
create our own. */
-
void
_cpp_init_hashtable (pfile, table)
cpp_reader *pfile;
@@ -81,7 +79,6 @@ _cpp_init_hashtable (pfile, table)
}
/* Tear down the identifier hash table. */
-
void
_cpp_destroy_hashtable (pfile)
cpp_reader *pfile;
@@ -95,7 +92,6 @@ _cpp_destroy_hashtable (pfile)
/* Returns the hash entry for the STR of length LEN, creating one
if necessary. */
-
cpp_hashnode *
cpp_lookup (pfile, str, len)
cpp_reader *pfile;
@@ -107,7 +103,6 @@ cpp_lookup (pfile, str, len)
}
/* Determine whether the str STR, of length LEN, is a defined macro. */
-
int
cpp_defined (pfile, str, len)
cpp_reader *pfile;
@@ -124,7 +119,6 @@ cpp_defined (pfile, str, len)
/* For all nodes in the hashtable, callback CB with parameters PFILE,
the node, and V. */
-
void
cpp_forall_identifiers (pfile, cb, v)
cpp_reader *pfile;
diff --git a/gcc/cpphash.h b/gcc/cpphash.h
index 703908f..be8d902 100644
--- a/gcc/cpphash.h
+++ b/gcc/cpphash.h
@@ -1,5 +1,6 @@
/* Part of CPP library.
- Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+ 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
@@ -43,7 +44,6 @@ struct directive; /* Deliberately incomplete. */
#define CPP_STACK_MAX 200
/* A generic memory buffer, and operations on it. */
-
typedef struct _cpp_buff _cpp_buff;
struct _cpp_buff
{
@@ -93,6 +93,7 @@ union utoken
const cpp_token **ptoken;
};
+/* A "run" of tokens; part of a chain of runs. */
typedef struct tokenrun tokenrun;
struct tokenrun
{
@@ -167,6 +168,7 @@ struct spec_nodes
cpp_hashnode *n__VA_ARGS__; /* C99 vararg macros */
};
+/* Represents the contents of a file cpplib has read in. */
struct cpp_buffer
{
const unsigned char *cur; /* current position */
@@ -224,7 +226,6 @@ struct cpp_buffer
/* A cpp_reader encapsulates the "state" of a pre-processor run.
Applying cpp_get_token repeatedly yields a stream of pre-processor
tokens. Usually, there is only one cpp_reader object active. */
-
struct cpp_reader
{
/* Top of buffer stack. */
diff --git a/gcc/cppinit.c b/gcc/cppinit.c
index 3ddf429..93b2702 100644
--- a/gcc/cppinit.c
+++ b/gcc/cppinit.c
@@ -54,7 +54,6 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* A `struct pending_option' remembers one -D, -A, -U, -include, or
-imacros switch. */
-
typedef void (* cl_directive_handler) PARAMS ((cpp_reader *, const char *));
struct pending_option
{
@@ -158,7 +157,6 @@ END
/* Given a colon-separated list of file names PATH,
add all the names to the search path for include files. */
-
static void
path_include (pfile, list, path)
cpp_reader *pfile;
@@ -200,7 +198,9 @@ path_include (pfile, list, path)
}
/* Append DIR to include path PATH. DIR must be allocated on the
- heap; this routine takes responsibility for freeing it. */
+ heap; this routine takes responsibility for freeing it. CXX_AWARE
+ is non-zero if the header contains extern "C" guards for C++,
+ otherwise it is zero. */
static void
append_include_chain (pfile, dir, path, cxx_aware)
cpp_reader *pfile;
@@ -331,11 +331,7 @@ remove_dup_dirs (pfile, head)
system, after. Remove duplicate dirs (as determined by
INO_T_EQ()). The system_include and after_include chains are never
referred to again after this function; all access is through the
- bracket_include path.
-
- For the future: Check if the directory is empty (but
- how?) and possibly preload the include hash. */
-
+ bracket_include path. */
static void
merge_include_chains (pfile)
cpp_reader *pfile;
@@ -389,9 +385,8 @@ merge_include_chains (pfile)
CPP_OPTION (pfile, bracket_include) = brack;
}
-/* Sets internal flags correctly for a given language, and defines
- macros if necessary. */
-
+/* A set of booleans indicating what CPP features each source language
+ requires. */
struct lang_flags
{
char c99;
@@ -419,6 +414,7 @@ static const struct lang_flags lang_defaults[] =
/* ASM */ { 0, 0, 0, 1, 0, 0, 1, 0 }
};
+/* Sets internal flags correctly for a given language. */
static void
set_lang (pfile, lang)
cpp_reader *pfile;
@@ -453,7 +449,6 @@ opt_comp (p1, p2)
/* init initializes library global state. It might not need to
do anything depending on the platform and compiler. */
-
static void
init_library ()
{
@@ -540,7 +535,7 @@ cpp_create_reader (lang)
}
/* Free resources used by PFILE. Accessing PFILE after this function
- returns leads to undefined behaviour. */
+ returns leads to undefined behaviour. Returns the error count. */
int
cpp_destroy (pfile)
cpp_reader *pfile;
@@ -613,7 +608,6 @@ cpp_destroy (pfile)
ULP value is the global user_label_prefix
Also, macros with CPLUS set in the flags field are entered only for C++. */
-
struct builtin
{
const U_CHAR *name;
@@ -689,7 +683,7 @@ static const struct builtin builtin_array[] =
builtin_array + sizeof(builtin_array)/sizeof(struct builtin)
/* Subroutine of cpp_read_main_file; reads the builtins table above and
- enters the macros into the hash table. */
+ enters them, and language-specific macros, into the hash table. */
static void
init_builtins (pfile)
cpp_reader *pfile;
@@ -865,7 +859,7 @@ init_standard_includes (pfile)
}
}
-/* Pushes a -imacro and -include file given on the command line onto
+/* Pushes a command line -imacro and -include file indicated by P onto
the buffer stack. Returns non-zero if successful. */
static bool
push_include (pfile, p)
@@ -1126,6 +1120,7 @@ cpp_finish (pfile)
_cpp_report_missing_guards (pfile);
}
+/* Add a directive to be handled later in the initialization phase. */
static void
new_pending_directive (pend, text, handler)
struct cpp_pending *pend;
@@ -1318,7 +1313,6 @@ parse_option (input)
/* Handle one command-line option in (argc, argv).
Can be called multiple times, to handle multiple sets of options.
Returns number of strings consumed. */
-
int
cpp_handle_option (pfile, argc, argv)
cpp_reader *pfile;
@@ -1871,6 +1865,7 @@ init_dependency_output (pfile)
}
}
+/* Handle --help output. */
static void
print_help ()
{
diff --git a/gcc/cpplex.c b/gcc/cpplex.c
index 45d28b6..8465350 100644
--- a/gcc/cpplex.c
+++ b/gcc/cpplex.c
@@ -1,5 +1,5 @@
/* CPP Library - lexical analysis.
- Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
Contributed by Per Bothner, 1994-95.
Based on CCCP program by Paul Rubin, June 1986
Adapted to ANSI C, Richard Stallman, Jan 1987
@@ -97,7 +97,6 @@ static _cpp_buff *new_buff PARAMS ((size_t));
Compares, the token TOKEN to the NUL-terminated string STRING.
TOKEN must be a CPP_NAME. Returns 1 for equal, 0 for unequal. */
-
int
cpp_ideq (token, string)
const cpp_token *token;
@@ -414,7 +413,6 @@ name_p (pfile, string)
Poisson-like). Second most common case is a new identifier, not
split and no dollar sign. The other possibilities are rare and
have been relegated to parse_identifier_slow. */
-
static cpp_hashnode *
parse_identifier (pfile)
cpp_reader *pfile;
@@ -517,7 +515,9 @@ parse_identifier_slow (pfile, cur)
ht_lookup (pfile->hash_table, obstack_finish (stack), len, HT_ALLOCED);
}
-/* Parse a number, skipping embedded backslash-newlines. */
+/* Parse a number, beginning with character C, skipping embedded
+ backslash-newlines. LEADING_PERIOD is non-zero if there was a "."
+ before C. Place the result in NUMBER. */
static void
parse_number (pfile, number, c, leading_period)
cpp_reader *pfile;
@@ -1289,7 +1289,7 @@ _cpp_lex_direct (pfile)
return result;
}
-/* An upper bound on the number of bytes needed to spell a token,
+/* An upper bound on the number of bytes needed to spell TOKEN,
including preceding whitespace. */
unsigned int
cpp_token_len (token)
@@ -1383,8 +1383,8 @@ cpp_spell_token (pfile, token, buffer)
return buffer;
}
-/* Returns a token as a null-terminated string. The string is
- temporary, and automatically freed later. Useful for diagnostics. */
+/* Returns TOKEN spelt as a null-terminated string. The string is
+ freed when the reader is destroyed. Useful for diagnostics. */
unsigned char *
cpp_token_as_text (pfile, token)
cpp_reader *pfile;
@@ -1399,7 +1399,8 @@ cpp_token_as_text (pfile, token)
return start;
}
-/* Used by C front ends. Should really move to using cpp_token_as_text. */
+/* Used by C front ends, which really should move to using
+ cpp_token_as_text. */
const char *
cpp_type2name (type)
enum cpp_ttype type;
@@ -1508,7 +1509,6 @@ _cpp_equiv_tokens (a, b)
accidental token paste for output. For simplicity, it is
conservative, and occasionally advises a space where one is not
needed, e.g. "." and ".2". */
-
int
cpp_avoid_paste (pfile, token1, token2)
cpp_reader *pfile;
@@ -1689,7 +1689,6 @@ maybe_read_ucs (pfile, pstr, limit, pc)
interpret escapes that did not exist in traditional C.
Handles all relevant diagnostics. */
-
unsigned int
cpp_parse_escape (pfile, pstr, limit, mask, traditional)
cpp_reader *pfile;
diff --git a/gcc/cpplib.c b/gcc/cpplib.c
index 3746d98..12baa10 100644
--- a/gcc/cpplib.c
+++ b/gcc/cpplib.c
@@ -1,6 +1,6 @@
/* CPP Library. (Directive handling.)
Copyright (C) 1986, 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
- 1999, 2000, 2001 Free Software Foundation, Inc.
+ 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
Contributed by Per Bothner, 1994-95.
Based on CCCP program by Paul Rubin, June 1986
Adapted to ANSI C, Richard Stallman, Jan 1987
@@ -36,7 +36,6 @@ struct answer
/* Stack of conditionals currently in progress
(including both successful and failing conditionals). */
-
struct if_stack
{
struct if_stack *next;
@@ -263,7 +262,6 @@ end_directive (pfile, skip_line)
/* Output diagnostics for a directive DIR. INDENTED is non-zero if
the '#' was indented. */
-
static void
directive_diagnostics (pfile, dir, indented)
cpp_reader *pfile;
@@ -311,7 +309,6 @@ directive_diagnostics (pfile, dir, indented)
to save unnecessarily exporting dtable etc. to cpplex.c. Returns
non-zero if the line of tokens has been handled, zero if we should
continue processing the line. */
-
int
_cpp_handle_directive (pfile, indented)
cpp_reader *pfile;
@@ -479,7 +476,7 @@ do_define (pfile)
}
}
-/* Handle #undef. Marks the identifier NT_VOID in the hash table. */
+/* Handle #undef. Mark the identifier NT_VOID in the hash table. */
static void
do_undef (pfile)
cpp_reader *pfile;
@@ -659,7 +656,6 @@ do_include_next (pfile)
/* Subroutine of do_line. Read possible flags after file name. LAST
is the last flag seen; 0 if this is the first flag. Return the flag
if it is valid, 0 at the end of the directive. Otherwise complain. */
-
static unsigned int
read_flag (pfile, last)
cpp_reader *pfile;
@@ -709,7 +705,6 @@ strtoul_for_line (str, len, nump)
/* Interpret #line command.
Note that the filename string (if any) is treated as if it were an
include filename. That means no escape handling. */
-
static void
do_line (pfile)
cpp_reader *pfile;
@@ -807,11 +802,8 @@ _cpp_do_file_change (pfile, reason, to_file, file_line, sysp)
(*pfile->cb.file_change) (pfile, pfile->map);
}
-/*
- * Report a warning or error detected by the program we are
- * processing. Use the directive's tokens in the error message.
- */
-
+/* Report a warning or error detected by the program we are
+ processing. Use the directive's tokens in the error message. */
static void
do_diagnostic (pfile, code, print_dir)
cpp_reader *pfile;
@@ -844,7 +836,6 @@ do_warning (pfile)
}
/* Report program identification. */
-
static void
do_ident (pfile)
cpp_reader *pfile;
@@ -1015,6 +1006,7 @@ do_pragma (pfile)
pfile->state.prevent_expansion--;
}
+/* Handle #pragma once. */
static void
do_pragma_once (pfile)
cpp_reader *pfile;
@@ -1029,12 +1021,12 @@ do_pragma_once (pfile)
check_eol (pfile);
}
+/* Handle #pragma poison, to poison one or more identifiers so that
+ the lexer produces a hard error for each subsequent usage. */
static void
do_pragma_poison (pfile)
cpp_reader *pfile;
{
- /* Poison these symbols so that all subsequent usage produces an
- error message. */
const cpp_token *tok;
cpp_hashnode *hp;
@@ -1208,6 +1200,7 @@ do_sccs (pfile)
}
#endif
+/* Handle #ifdef. */
static void
do_ifdef (pfile)
cpp_reader *pfile;
@@ -1228,6 +1221,7 @@ do_ifdef (pfile)
push_conditional (pfile, skip, T_IFDEF, 0);
}
+/* Handle #ifndef. */
static void
do_ifndef (pfile)
cpp_reader *pfile;
@@ -1253,7 +1247,6 @@ do_ifndef (pfile)
optimisations. If macro expansion occurs in the expression, we
cannot treat it as a controlling conditional, since the expansion
could change in the future. That is handled by cpp_get_token. */
-
static void
do_if (pfile)
cpp_reader *pfile;
@@ -1269,7 +1262,6 @@ do_if (pfile)
/* Flip skipping state if appropriate and continue without changing
if_stack; this is so that the error message for missing #endif's
etc. will point to the original #if. */
-
static void
do_else (pfile)
cpp_reader *pfile;
@@ -1302,9 +1294,8 @@ do_else (pfile)
}
}
-/* handle a #elif directive by not changing if_stack either. see the
+/* Handle a #elif directive by not changing if_stack either. See the
comment above do_else. */
-
static void
do_elif (pfile)
cpp_reader *pfile;
@@ -1341,7 +1332,6 @@ do_elif (pfile)
}
/* #endif pops the if stack and resets pfile->state.skipping. */
-
static void
do_endif (pfile)
cpp_reader *pfile;
@@ -1370,10 +1360,10 @@ do_endif (pfile)
}
}
-/* Push an if_stack entry and set pfile->state.skipping accordingly.
- If this is a #if or #ifndef, CMACRO is a potentially controlling
- macro - we need to check here that we are at the top of the file. */
-
+/* Push an if_stack entry for a preprocessor conditional, and set
+ pfile->state.skipping to SKIP. If TYPE indicates the conditional
+ is #if or #ifndef, CMACRO is a potentially controlling macro, and
+ we need to check here that we are at the top of the file. */
static void
push_conditional (pfile, skip, type, cmacro)
cpp_reader *pfile;
@@ -1400,10 +1390,10 @@ push_conditional (pfile, skip, type, cmacro)
buffer->if_stack = ifs;
}
-/* Read the tokens of the answer into the macro pool. Only commit the
- memory if we intend it as permanent storage, i.e. the #assert case.
- Returns 0 on success. */
-
+/* Read the tokens of the answer into the macro pool, in a directive
+ of type TYPE. Only commit the memory if we intend it as permanent
+ storage, i.e. the #assert case. Returns 0 on success, and sets
+ ANSWERP to point to the answer. */
static int
parse_answer (pfile, answerp, type)
cpp_reader *pfile;
@@ -1480,9 +1470,9 @@ parse_answer (pfile, answerp, type)
return 0;
}
-/* Parses an assertion, returning a pointer to the hash node of the
- predicate, or 0 on error. If an answer was supplied, it is placed
- in ANSWERP, otherwise it is set to 0. */
+/* Parses an assertion directive of type TYPE, returning a pointer to
+ the hash node of the predicate, or 0 on error. If an answer was
+ supplied, it is placed in ANSWERP, otherwise it is set to 0. */
static cpp_hashnode *
parse_assertion (pfile, answerp, type)
cpp_reader *pfile;
@@ -1516,7 +1506,7 @@ parse_assertion (pfile, answerp, type)
return result;
}
-/* Returns a pointer to the pointer to the answer in the answer chain,
+/* Returns a pointer to the pointer to CANDIDATE in the answer chain,
or a pointer to NULL if the answer is not in the chain. */
static struct answer **
find_answer (node, candidate)
@@ -1564,6 +1554,7 @@ _cpp_test_assertion (pfile, value)
return node == 0;
}
+/* Handle #assert. */
static void
do_assert (pfile)
cpp_reader *pfile;
@@ -1596,6 +1587,7 @@ do_assert (pfile)
}
}
+/* Handle #unassert. */
static void
do_unassert (pfile)
cpp_reader *pfile;
@@ -1635,7 +1627,6 @@ do_unassert (pfile)
If STR is just an identifier, define it with value 1.
If STR has anything after the identifier, then it should
be identifier=definition. */
-
void
cpp_define (pfile, str)
cpp_reader *pfile;
@@ -1826,6 +1817,7 @@ _cpp_pop_buffer (pfile)
obstack_free (&pfile->buffer_ob, buffer);
}
+/* Enter all recognised directives in the hash table. */
void
_cpp_init_directives (pfile)
cpp_reader *pfile;
@@ -1833,7 +1825,6 @@ _cpp_init_directives (pfile)
unsigned int i;
cpp_hashnode *node;
- /* Register the directives. */
for (i = 0; i < (unsigned int) N_DIRECTIVES; i++)
{
node = cpp_lookup (pfile, dtable[i].name, dtable[i].length);
diff --git a/gcc/cpplib.h b/gcc/cpplib.h
index e9002fb..367491b 100644
--- a/gcc/cpplib.h
+++ b/gcc/cpplib.h
@@ -1,5 +1,5 @@
/* Definitions for CPP library.
- Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001
+ Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
Free Software Foundation, Inc.
Written by Per Bothner, 1994-95.
@@ -152,7 +152,7 @@ enum cpp_ttype
enum c_lang {CLK_GNUC89 = 0, CLK_GNUC99, CLK_STDC89, CLK_STDC94, CLK_STDC99,
CLK_GNUCXX, CLK_CXX98, CLK_OBJC, CLK_OBJCXX, CLK_ASM};
-/* Payload of a NUMBER, FLOAT, STRING, or COMMENT token. */
+/* Payload of a NUMBER, STRING, CHAR or COMMENT token. */
struct cpp_string
{
unsigned int len;
diff --git a/gcc/cppmacro.c b/gcc/cppmacro.c
index c36389e..538c689 100644
--- a/gcc/cppmacro.c
+++ b/gcc/cppmacro.c
@@ -1,6 +1,6 @@
/* Part of CPP library. (Macro and #define handling.)
Copyright (C) 1986, 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1998,
- 1999, 2000, 2001 Free Software Foundation, Inc.
+ 1999, 2000, 2001, 2002 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
diff --git a/gcc/cppmain.c b/gcc/cppmain.c
index 70f5bb3..ee157ca 100644
--- a/gcc/cppmain.c
+++ b/gcc/cppmain.c
@@ -1,5 +1,5 @@
/* CPP main program, using CPP Library.
- Copyright (C) 1995, 1997, 1998, 1999, 2000, 2001
+ Copyright (C) 1995, 1997, 1998, 1999, 2000, 2001, 2002
Free Software Foundation, Inc.
Written by Per Bothner, 1994-95.