diff options
author | Alexander Kabaev <kan@FreeBSD.org> | 2007-05-19 01:19:51 +0000 |
---|---|---|
committer | Alexander Kabaev <kan@FreeBSD.org> | 2007-05-19 01:19:51 +0000 |
commit | 6b834ef156bcf24dcf0e281f57ee5bde03ca07cf (patch) | |
tree | 0cb530c9c38af219e6dda2994c078b6b2b9ad853 /contrib/gcc/input.h | |
parent | 9ba78bf6b1135ae200742b2a97ae5bc71c9fd265 (diff) |
GCC 4.2.0 release.
Notes
Notes:
svn path=/vendor/gcc/dist/; revision=169689
Diffstat (limited to 'contrib/gcc/input.h')
-rw-r--r-- | contrib/gcc/input.h | 68 |
1 files changed, 55 insertions, 13 deletions
diff --git a/contrib/gcc/input.h b/contrib/gcc/input.h index ff014f6d664f..2fea1a65c9b4 100644 --- a/contrib/gcc/input.h +++ b/contrib/gcc/input.h @@ -1,6 +1,6 @@ /* Declarations for variables relating to reading the source file. Used by parsers, lexical analyzers, and error message routines. - Copyright (C) 1993, 1997, 1998, 2000, 2003 Free Software Foundation, Inc. + Copyright (C) 1993, 1997, 1998, 2000, 2003, 2004 Free Software Foundation, Inc. This file is part of GCC. @@ -16,15 +16,40 @@ for more details. You should have received a copy of the GNU General Public License along with GCC; see the file COPYING. If not, write to the Free -Software Foundation, 59 Temple Place - Suite 330, Boston, MA -02111-1307, USA. */ +Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301, USA. */ #ifndef GCC_INPUT_H #define GCC_INPUT_H -/* The data structure used to record a location in a translation unit. */ -/* Long-term, we want to get rid of this and typedef fileline location_t. */ -struct location_s GTY (()) +#include "line-map.h" +extern struct line_maps line_table; + +/* The location for declarations in "<built-in>" */ +#define BUILTINS_LOCATION ((source_location) 2) + +#ifdef USE_MAPPED_LOCATION + +typedef struct +{ + /* The name of the source file involved. */ + const char *file; + + /* The line-location in the source file. */ + int line; + + int column; +} expanded_location; + +extern expanded_location expand_location (source_location); + +#define UNKNOWN_LOCATION ((source_location) 0) +typedef source_location location_t; /* deprecated typedef */ +typedef source_location source_locus; /* to be removed */ + +#else /* ! USE_MAPPED_LOCATION */ + +struct location_s GTY(()) { /* The name of the source file involved. */ const char *file; @@ -32,7 +57,16 @@ struct location_s GTY (()) /* The line-location in the source file. */ int line; }; + +typedef struct location_s expanded_location; typedef struct location_s location_t; +typedef location_t *source_locus; + +#define expand_location(FILELINE) (FILELINE) +extern location_t unknown_location; +#define UNKNOWN_LOCATION unknown_location + +#endif /* ! USE_MAPPED_LOCATION */ struct file_stack { @@ -44,20 +78,28 @@ struct file_stack extern const char *main_input_filename; extern location_t input_location; -#define input_line (input_location.line) -#define input_filename (input_location.file) +#ifdef USE_MAPPED_LOCATION +extern void push_srcloc (location_t); +#else /* ! USE_MAPPED_LOCATION */ +extern void push_srcloc (const char *name, int line); +#endif /* ! USE_MAPPED_LOCATION */ +extern void pop_srcloc (void); +extern void restore_input_file_stack (int); + +#define LOCATION_FILE(LOC) ((expand_location (LOC)).file) +#define LOCATION_LINE(LOC) ((expand_location (LOC)).line) + +#define input_line LOCATION_LINE(input_location) +#define input_filename LOCATION_FILE(input_location) /* Stack of currently pending input files. The line member is not accurate for the innermost file on the stack. */ extern struct file_stack *input_file_stack; -/* Stack of EXPR_WITH_FILE_LOCATION nested expressions. */ -extern struct file_stack *expr_wfl_stack; - /* Incremented on each change to input_file_stack. */ extern int input_file_stack_tick; -extern void push_srcloc (const char *name, int line); -extern void pop_srcloc (void); +/* The number of bits available for input_file_stack_tick. */ +#define INPUT_FILE_STACK_BITS 31 #endif |