]> gcc.gnu.org Git - gcc.git/blame - gcc/input.h
In gcc/testsuite/: 2010-10-20 Nicola Pero <nicola.pero@meta-innovation.com>
[gcc.git] / gcc / input.h
CommitLineData
d7f6896a
RK
1/* Declarations for variables relating to reading the source file.
2 Used by parsers, lexical analyzers, and error message routines.
447924ef 3 Copyright (C) 1993, 1997, 1998, 2000, 2003, 2004, 2007, 2008, 2009, 2010
9dcd6f09 4 Free Software Foundation, Inc.
d7f6896a 5
1322177d 6This file is part of GCC.
d7f6896a 7
1322177d
LB
8GCC is free software; you can redistribute it and/or modify it under
9the terms of the GNU General Public License as published by the Free
9dcd6f09 10Software Foundation; either version 3, or (at your option) any later
1322177d 11version.
d7f6896a 12
1322177d
LB
13GCC is distributed in the hope that it will be useful, but WITHOUT ANY
14WARRANTY; without even the implied warranty of MERCHANTABILITY or
15FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
16for more details.
d7f6896a
RK
17
18You should have received a copy of the GNU General Public License
9dcd6f09
NC
19along with GCC; see the file COPYING3. If not see
20<http://www.gnu.org/licenses/>. */
d7f6896a 21
6060edcb
NS
22#ifndef GCC_INPUT_H
23#define GCC_INPUT_H
1fa2d22f 24
c1667470 25#include "line-map.h"
2d593c86 26
5ffeb913 27extern GTY(()) struct line_maps *line_table;
50f59cd7 28
2d593c86
TT
29/* A value which will never be used to represent a real location. */
30#define UNKNOWN_LOCATION ((source_location) 0)
31
c1667470 32/* The location for declarations in "<built-in>" */
96c169e1
JJ
33#define BUILTINS_LOCATION ((source_location) 1)
34
35/* line-map.c reserves RESERVED_LOCATION_COUNT to the user. Ensure
36 both UNKNOWN_LOCATION and BUILTINS_LOCATION fit into that. */
37extern char builtins_location_check[(BUILTINS_LOCATION
38 < RESERVED_LOCATION_COUNT) ? 1 : -1];
c1667470 39
2d593c86 40typedef struct GTY (())
6060edcb 41{
1d088dee 42 /* The name of the source file involved. */
6060edcb 43 const char *file;
1fa2d22f 44
6060edcb
NS
45 /* The line-location in the source file. */
46 int line;
c1667470 47
aa3c6dc1 48 int column;
aa14403d
RAE
49
50 /* In a system header?. */
51 bool sysp;
c1667470
PB
52} expanded_location;
53
c1667470
PB
54extern expanded_location expand_location (source_location);
55
2d593c86
TT
56/* Historically GCC used location_t, while cpp used source_location.
57 This could be removed but it hardly seems worth the effort. */
58typedef source_location location_t;
1fa2d22f 59
6060edcb 60extern location_t input_location;
c1667470
PB
61
62#define LOCATION_FILE(LOC) ((expand_location (LOC)).file)
63#define LOCATION_LINE(LOC) ((expand_location (LOC)).line)
64
2d593c86
TT
65#define input_line LOCATION_LINE (input_location)
66#define input_filename LOCATION_FILE (input_location)
aa14403d
RAE
67#define in_system_header_at(LOC) ((expand_location (LOC)).sysp != 0)
68#define in_system_header (in_system_header_at (input_location))
1fa2d22f 69
6060edcb 70#endif
This page took 3.651327 seconds and 5 git commands to generate.