GCC Middle and Back End API Reference
input.h File Reference
#include "line-map.h"
Include dependency graph for input.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define UNKNOWN_LOCATION   ((source_location) 0)
#define BUILTINS_LOCATION   ((source_location) 1)
#define LOCATION_FILE(LOC)   ((expand_location (LOC)).file)
#define LOCATION_LINE(LOC)   ((expand_location (LOC)).line)
#define LOCATION_COLUMN(LOC)   ((expand_location (LOC)).column)
#define LOCATION_LOCUS(LOC)
#define LOCATION_BLOCK(LOC)
#define input_line   LOCATION_LINE (input_location)
#define input_filename   LOCATION_FILE (input_location)
#define in_system_header_at(LOC)   ((linemap_location_in_system_header_p (line_table, LOC)))
#define in_system_header   (in_system_header_at (input_location))

Typedefs

typedef source_location location_t

Functions

expanded_location expand_location (source_location)
const char * location_get_source_line (expanded_location xloc)
expanded_location expand_location_to_spelling_point (source_location)
source_location expansion_point_location_if_in_system_header (source_location)
void dump_line_table_statistics (void)

Variables

struct line_maps * line_table
char builtins_location_check [(BUILTINS_LOCATION< RESERVED_LOCATION_COUNT)?1:-1]
location_t input_location

Macro Definition Documentation

#define BUILTINS_LOCATION   ((source_location) 1)

The location for declarations in "<built-in>"

Referenced by adjust_line(), coverage_obj_init(), and lhd_omp_predetermined_sharing().

#define in_system_header   (in_system_header_at (input_location))
#define in_system_header_at (   LOC)    ((linemap_location_in_system_header_p (line_table, LOC)))
#define input_filename   LOCATION_FILE (input_location)
#define input_line   LOCATION_LINE (input_location)
#define LOCATION_BLOCK (   LOC)
Value:
((tree) ((IS_ADHOC_LOC (LOC)) ? get_data_from_adhoc_loc (line_table, (LOC)) \
: NULL))

Referenced by expand_location_1(), and gimplify_build3().

#define LOCATION_COLUMN (   LOC)    ((expand_location (LOC)).column)
#define LOCATION_FILE (   LOC)    ((expand_location (LOC)).file)
#define LOCATION_LINE (   LOC)    ((expand_location (LOC)).line)
#define LOCATION_LOCUS (   LOC)

Typedef Documentation

typedef source_location location_t

Historically GCC used location_t, while cpp used source_location. This could be removed but it hardly seems worth the effort.


Function Documentation

void dump_line_table_statistics ( void  )

Dump statistics to stderr about the memory usage of the line_table set of line maps. This also displays some statistics about macro expansion.

expanded_location expand_location ( source_location  )
expanded_location expand_location_to_spelling_point ( source_location  )
source_location expansion_point_location_if_in_system_header ( source_location  )
const char* location_get_source_line ( expanded_location  xloc)

Variable Documentation

char builtins_location_check[(BUILTINS_LOCATION< RESERVED_LOCATION_COUNT)?1:-1]

line-map.c reserves RESERVED_LOCATION_COUNT to the user. Ensure both UNKNOWN_LOCATION and BUILTINS_LOCATION fit into that.

location_t input_location

Data and functions related to line maps and input files. Copyright (C) 2004-2013 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version.

GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3. If not see http://www.gnu.org/licenses/. Current position in real source file.

Referenced by create_tmp_var_name(), diagnostic_for_asm(), emit_diagnostic(), gimplify_expr(), number_of_iterations_exit(), permerror(), read_profile_edge_counts(), thunk_adjust(), vrp_initialize(), and wrapup_global_declarations().

struct line_maps* line_table

Declarations for variables relating to reading the source file. Used by parsers, lexical analyzers, and error message routines. Copyright (C) 1993-2013 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version.

GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3. If not see http://www.gnu.org/licenses/.

Referenced by diagnostic_report_current_module(), expand_location_to_spelling_point(), and signed_or_unsigned_type_for().