aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog26
-rw-r--r--gcc/ada/ChangeLog5
-rw-r--r--gcc/ada/gcc-interface/trans.c2
-rw-r--r--gcc/c-family/ChangeLog18
-rw-r--r--gcc/c-family/c-common.h4
-rw-r--r--gcc/c-family/c-lex.c6
-rw-r--r--gcc/c-family/c-opts.c14
-rw-r--r--gcc/c-family/c-ppoutput.c6
-rw-r--r--gcc/diagnostic.c2
-rw-r--r--gcc/fortran/ChangeLog7
-rw-r--r--gcc/fortran/cpp.c12
-rw-r--r--gcc/genmatch.c4
-rw-r--r--gcc/input.c11
-rw-r--r--gcc/tree-diagnostic.c9
14 files changed, 94 insertions, 32 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2f90bea..b2374c2 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,29 @@
+2015-05-19 David Malcolm <dmalcolm@redhat.com>
+
+ * diagnostic.c (diagnostic_report_current_module): Strengthen
+ local "new_map" from const line_map * to
+ const line_map_ordinary *.
+ * genmatch.c (error_cb): Likewise for local "map".
+ (output_line_directive): Likewise for local "map".
+ * input.c (expand_location_1): Likewise for local "map".
+ Pass NULL rather than &map to
+ linemap_unwind_to_first_non_reserved_loc, since the value is never
+ read from there, and the value written back not read from here.
+ (is_location_from_builtin_token): Strengthen local "map" from
+ const line_map * to const line_map_ordinary *.
+ (dump_location_info): Strengthen locals "map" from
+ line_map *, one to const line_map_ordinary *, the other
+ to const line_map_macro *.
+ * tree-diagnostic.c (loc_map_pair): Strengthen field "map" from
+ const line_map * to const line_map_macro *.
+ (maybe_unwind_expanded_macro_loc): Add a call to
+ linemap_check_macro when writing to the "map" field of the
+ loc_map_pair.
+ Introduce local const line_map_ordinary * "ord_map", using it in
+ place of "map" in the part of the function where we know we have
+ an ordinary map. Strengthen local "m" from const line_map * to
+ const line_map_ordinary *.
+
2015-05-19 Nick Clifton <nickc@redhat.com>
PR target/66156
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 6df8f50..004901e 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,8 @@
+2015-05-19 David Malcolm <dmalcolm@redhat.com>
+
+ * gcc-interface/trans.c (Sloc_to_locus1): Strenghthen local "map"
+ from line_map * to line_map_ordinary *.
+
2015-05-12 Jason Merrill <jason@redhat.com>
* sigtramp-vxworks.c: Add space between string literal and macro
diff --git a/gcc/ada/gcc-interface/trans.c b/gcc/ada/gcc-interface/trans.c
index 6ffee06..917a9a6 100644
--- a/gcc/ada/gcc-interface/trans.c
+++ b/gcc/ada/gcc-interface/trans.c
@@ -9316,7 +9316,7 @@ Sloc_to_locus1 (Source_Ptr Sloc, location_t *locus, bool clear_column)
Source_File_Index file = Get_Source_File_Index (Sloc);
Logical_Line_Number line = Get_Logical_Line_Number (Sloc);
Column_Number column = (clear_column ? 0 : Get_Column_Number (Sloc));
- struct line_map *map = LINEMAPS_ORDINARY_MAP_AT (line_table, file - 1);
+ line_map_ordinary *map = LINEMAPS_ORDINARY_MAP_AT (line_table, file - 1);
/* We can have zero if pragma Source_Reference is in effect. */
if (line < 1)
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog
index bf403ce..695bfee 100644
--- a/gcc/c-family/ChangeLog
+++ b/gcc/c-family/ChangeLog
@@ -1,3 +1,21 @@
+2015-05-19 David Malcolm <dmalcolm@redhat.com>
+
+ * c-common.h (fe_file_change): Strengthen param from
+ const line_map * to const line_map_ordinary *.
+ (pp_file_change): Likewise.
+ * c-lex.c (fe_file_change): Likewise.
+ (cb_define): Use linemap_check_ordinary when invoking
+ SOURCE_LINE.
+ (cb_undef): Likewise.
+ * c-opts.c (c_finish_options): Use linemap_check_ordinary when
+ invoking cb_file_change.
+ (c_finish_options): Likewise.
+ (push_command_line_include): Likewise.
+ (cb_file_change): Strengthen param "new_map" from
+ const line_map * to const line_map_ordinary *.
+ * c-ppoutput.c (cb_define): Likewise for local "map".
+ (pp_file_change): Likewise for param "map" and local "from".
+
2015-05-19 Mikhail Maltsev <maltsevm@gmail.com>
* c-common.c (shorten_compare): Use std::swap instead of explicit swaps.
diff --git a/gcc/c-family/c-common.h b/gcc/c-family/c-common.h
index 62eac9f..0eaff05 100644
--- a/gcc/c-family/c-common.h
+++ b/gcc/c-family/c-common.h
@@ -1093,13 +1093,13 @@ extern const unsigned char executable_checksum[16];
extern void builtin_define_std (const char *macro);
extern void builtin_define_with_value (const char *, const char *, int);
extern void c_stddef_cpp_builtins (void);
-extern void fe_file_change (const struct line_map *);
+extern void fe_file_change (const line_map_ordinary *);
extern void c_parse_error (const char *, enum cpp_ttype, tree, unsigned char);
/* In c-ppoutput.c */
extern void init_pp_output (FILE *);
extern void preprocess_file (cpp_reader *);
-extern void pp_file_change (const struct line_map *);
+extern void pp_file_change (const line_map_ordinary *);
extern void pp_dir_change (cpp_reader *, const char *);
extern bool check_missing_format_attribute (tree, tree);
diff --git a/gcc/c-family/c-lex.c b/gcc/c-family/c-lex.c
index bb55be8..85775014 100644
--- a/gcc/c-family/c-lex.c
+++ b/gcc/c-family/c-lex.c
@@ -201,7 +201,7 @@ cb_line_change (cpp_reader * ARG_UNUSED (pfile), const cpp_token *token,
}
void
-fe_file_change (const struct line_map *new_map)
+fe_file_change (const line_map_ordinary *new_map)
{
if (new_map == NULL)
return;
@@ -281,7 +281,7 @@ static void
cb_define (cpp_reader *pfile, source_location loc, cpp_hashnode *node)
{
const struct line_map *map = linemap_lookup (line_table, loc);
- (*debug_hooks->define) (SOURCE_LINE (map, loc),
+ (*debug_hooks->define) (SOURCE_LINE (linemap_check_ordinary (map), loc),
(const char *) cpp_macro_definition (pfile, node));
}
@@ -291,7 +291,7 @@ cb_undef (cpp_reader * ARG_UNUSED (pfile), source_location loc,
cpp_hashnode *node)
{
const struct line_map *map = linemap_lookup (line_table, loc);
- (*debug_hooks->undef) (SOURCE_LINE (map, loc),
+ (*debug_hooks->undef) (SOURCE_LINE (linemap_check_ordinary (map), loc),
(const char *) NODE_NAME (node));
}
diff --git a/gcc/c-family/c-opts.c b/gcc/c-family/c-opts.c
index e9eb511..fe5fce7 100644
--- a/gcc/c-family/c-opts.c
+++ b/gcc/c-family/c-opts.c
@@ -135,7 +135,7 @@ static void handle_deferred_opts (void);
static void sanitize_cpp_opts (void);
static void add_prefixed_path (const char *, size_t);
static void push_command_line_include (void);
-static void cb_file_change (cpp_reader *, const struct line_map *);
+static void cb_file_change (cpp_reader *, const line_map_ordinary *);
static void cb_dir_change (cpp_reader *, const char *);
static void c_finish_options (void);
@@ -1306,8 +1306,10 @@ c_finish_options (void)
size_t i;
cb_file_change (parse_in,
- linemap_add (line_table, LC_RENAME, 0,
- _("<built-in>"), 0));
+ linemap_check_ordinary (linemap_add (line_table,
+ LC_RENAME, 0,
+ _("<built-in>"),
+ 0)));
/* Make sure all of the builtins about to be declared have
BUILTINS_LOCATION has their source_location. */
source_location builtins_loc = BUILTINS_LOCATION;
@@ -1330,8 +1332,8 @@ c_finish_options (void)
cpp_opts->warn_dollars = (cpp_opts->cpp_pedantic && !cpp_opts->c99);
cb_file_change (parse_in,
- linemap_add (line_table, LC_RENAME, 0,
- _("<command-line>"), 0));
+ linemap_check_ordinary (linemap_add (line_table, LC_RENAME, 0,
+ _("<command-line>"), 0)));
for (i = 0; i < deferred_count; i++)
{
@@ -1434,7 +1436,7 @@ push_command_line_include (void)
/* File change callback. Has to handle -include files. */
static void
cb_file_change (cpp_reader * ARG_UNUSED (pfile),
- const struct line_map *new_map)
+ const line_map_ordinary *new_map)
{
if (flag_preprocess_only)
pp_file_change (new_map);
diff --git a/gcc/c-family/c-ppoutput.c b/gcc/c-family/c-ppoutput.c
index 9b9cba0..e936d5d 100644
--- a/gcc/c-family/c-ppoutput.c
+++ b/gcc/c-family/c-ppoutput.c
@@ -502,7 +502,7 @@ cb_ident (cpp_reader *pfile ATTRIBUTE_UNUSED, source_location line,
static void
cb_define (cpp_reader *pfile, source_location line, cpp_hashnode *node)
{
- const struct line_map *map;
+ const line_map_ordinary *map;
maybe_print_line (line);
fputs ("#define ", print.outf);
@@ -642,7 +642,7 @@ pp_dir_change (cpp_reader *pfile ATTRIBUTE_UNUSED, const char *dir)
described in MAP. */
void
-pp_file_change (const struct line_map *map)
+pp_file_change (const line_map_ordinary *map)
{
const char *flags = "";
@@ -664,7 +664,7 @@ pp_file_change (const struct line_map *map)
/* Bring current file to correct line when entering a new file. */
if (map->reason == LC_ENTER)
{
- const struct line_map *from = INCLUDED_FROM (line_table, map);
+ const line_map_ordinary *from = INCLUDED_FROM (line_table, map);
maybe_print_line (LAST_SOURCE_LINE_LOCATION (from));
}
if (map->reason == LC_ENTER)
diff --git a/gcc/diagnostic.c b/gcc/diagnostic.c
index 54e3fcf..8f7a9e1 100644
--- a/gcc/diagnostic.c
+++ b/gcc/diagnostic.c
@@ -607,7 +607,7 @@ diagnostic_action_after_output (diagnostic_context *context,
void
diagnostic_report_current_module (diagnostic_context *context, location_t where)
{
- const struct line_map *map = NULL;
+ const line_map_ordinary *map = NULL;
if (pp_needs_newline (context->printer))
{
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 6b3ad09..2fc04fd 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,10 @@
+2015-05-19 David Malcolm <dmalcolm@redhat.com>
+
+ * cpp.c (maybe_print_line): Strengthen local "map" from
+ const line_map * to const line_map_ordinary *.
+ (cb_file_change): Likewise for param "map" and local "from".
+ (cb_line_change): Likewise for local "map".
+
2015-05-19 Mikhail Maltsev <maltsevm@gmail.com>
* interface.c (compare_actual_formal): Use std::swap instead of
diff --git a/gcc/fortran/cpp.c b/gcc/fortran/cpp.c
index e239f21..e0e1f74 100644
--- a/gcc/fortran/cpp.c
+++ b/gcc/fortran/cpp.c
@@ -147,7 +147,7 @@ static void scan_translation_unit_trad (cpp_reader *);
/* Callback routines for the parser. Most of these are active only
in specific modes. */
-static void cb_file_change (cpp_reader *, const struct line_map *);
+static void cb_file_change (cpp_reader *, const line_map_ordinary *);
static void cb_line_change (cpp_reader *, const cpp_token *, int);
static void cb_define (cpp_reader *, source_location, cpp_hashnode *);
static void cb_undef (cpp_reader *, source_location, cpp_hashnode *);
@@ -807,7 +807,8 @@ scan_translation_unit_trad (cpp_reader *pfile)
static void
maybe_print_line (source_location src_loc)
{
- const struct line_map *map = linemap_lookup (line_table, src_loc);
+ const line_map_ordinary *map
+ = linemap_check_ordinary (linemap_lookup (line_table, src_loc));
int src_line = SOURCE_LINE (map, src_loc);
/* End the previous line of text. */
@@ -874,7 +875,7 @@ print_line (source_location src_loc, const char *special_flags)
}
static void
-cb_file_change (cpp_reader * ARG_UNUSED (pfile), const struct line_map *map)
+cb_file_change (cpp_reader * ARG_UNUSED (pfile), const line_map_ordinary *map)
{
const char *flags = "";
@@ -896,7 +897,7 @@ cb_file_change (cpp_reader * ARG_UNUSED (pfile), const struct line_map *map)
/* Bring current file to correct line when entering a new file. */
if (map->reason == LC_ENTER)
{
- const struct line_map *from = INCLUDED_FROM (line_table, map);
+ const line_map_ordinary *from = INCLUDED_FROM (line_table, map);
maybe_print_line (LAST_SOURCE_LINE_LOCATION (from));
}
if (map->reason == LC_ENTER)
@@ -930,7 +931,8 @@ cb_line_change (cpp_reader *pfile, const cpp_token *token,
ought to care. Some things do care; the fault lies with them. */
if (!CPP_OPTION (pfile, traditional))
{
- const struct line_map *map = linemap_lookup (line_table, src_loc);
+ const line_map_ordinary *map
+ = linemap_check_ordinary (linemap_lookup (line_table, src_loc));
int spaces = SOURCE_COLUMN (map, src_loc) - 2;
print.printed = 1;
diff --git a/gcc/genmatch.c b/gcc/genmatch.c
index fbd12a5..bca7909 100644
--- a/gcc/genmatch.c
+++ b/gcc/genmatch.c
@@ -58,7 +58,7 @@ __attribute__((format (printf, 6, 0)))
error_cb (cpp_reader *, int errtype, int, source_location location,
unsigned int, const char *msg, va_list *ap)
{
- const line_map *map;
+ const line_map_ordinary *map;
linemap_resolve_location (line_table, location, LRK_SPELLING_LOCATION, &map);
expanded_location loc = linemap_expand_location (line_table, map, location);
fprintf (stderr, "%s:%d:%d %s: ", loc.file, loc.line, loc.column,
@@ -134,7 +134,7 @@ static void
output_line_directive (FILE *f, source_location location,
bool dumpfile = false)
{
- const line_map *map;
+ const line_map_ordinary *map;
linemap_resolve_location (line_table, location, LRK_SPELLING_LOCATION, &map);
expanded_location loc = linemap_expand_location (line_table, map, location);
if (dumpfile)
diff --git a/gcc/input.c b/gcc/input.c
index d633b76..01230f2 100644
--- a/gcc/input.c
+++ b/gcc/input.c
@@ -134,7 +134,7 @@ expand_location_1 (source_location loc,
bool expansion_point_p)
{
expanded_location xloc;
- const struct line_map *map;
+ const line_map_ordinary *map;
enum location_resolution_kind lrk = LRK_MACRO_EXPANSION_POINT;
tree block = NULL;
@@ -158,7 +158,7 @@ expand_location_1 (source_location loc,
location (toward the expansion point) that is not reserved;
that is, the first location that is in real source code. */
loc = linemap_unwind_to_first_non_reserved_loc (line_table,
- loc, &map);
+ loc, NULL);
lrk = LRK_SPELLING_LOCATION;
}
loc = linemap_resolve_location (line_table, loc,
@@ -724,7 +724,7 @@ location_get_source_line (expanded_location xloc,
bool
is_location_from_builtin_token (source_location loc)
{
- const line_map *map = NULL;
+ const line_map_ordinary *map = NULL;
loc = linemap_resolve_location (line_table, loc,
LRK_SPELLING_LOCATION, &map);
return loc == BUILTINS_LOCATION;
@@ -949,7 +949,8 @@ dump_location_info (FILE *stream)
source_location end_location = get_end_location (line_table, idx);
/* half-closed: doesn't include this one. */
- struct line_map *map = LINEMAPS_ORDINARY_MAP_AT (line_table, idx);
+ const line_map_ordinary *map
+ = LINEMAPS_ORDINARY_MAP_AT (line_table, idx);
fprintf (stream, "ORDINARY MAP: %i\n", idx);
dump_location_range (stream,
MAP_START_LOCATION (map), end_location);
@@ -1026,7 +1027,7 @@ dump_location_info (FILE *stream)
unsigned int idx = (ascending_source_locations
? (LINEMAPS_MACRO_USED (line_table) - (i + 1))
: i);
- struct line_map *map = LINEMAPS_MACRO_MAP_AT (line_table, idx);
+ const line_map_macro *map = LINEMAPS_MACRO_MAP_AT (line_table, idx);
fprintf (stream, "MACRO %i: %s (%u tokens)\n",
idx,
linemap_map_get_macro_name (map),
diff --git a/gcc/tree-diagnostic.c b/gcc/tree-diagnostic.c
index a3b73b2..7461a94 100644
--- a/gcc/tree-diagnostic.c
+++ b/gcc/tree-diagnostic.c
@@ -67,7 +67,7 @@ default_tree_diagnostic_starter (diagnostic_context *context,
below. */
typedef struct
{
- const struct line_map *map;
+ const line_map_macro *map;
source_location where;
} loc_map_pair;
@@ -133,7 +133,7 @@ maybe_unwind_expanded_macro_loc (diagnostic_context *context,
do
{
loc.where = where;
- loc.map = map;
+ loc.map = linemap_check_macro (map);
loc_vec.safe_push (loc);
@@ -148,6 +148,7 @@ maybe_unwind_expanded_macro_loc (diagnostic_context *context,
/* Now map is set to the map of the location in the source that
first triggered the macro expansion. This must be an ordinary map. */
+ const line_map_ordinary *ord_map = linemap_check_ordinary (map);
/* Walk LOC_VEC and print the macro expansion trace, unless the
first macro which expansion triggered this trace was expanded
@@ -155,7 +156,7 @@ maybe_unwind_expanded_macro_loc (diagnostic_context *context,
int saved_location_line =
expand_location_to_spelling_point (diagnostic_location (diagnostic)).line;
- if (!LINEMAP_SYSP (map))
+ if (!LINEMAP_SYSP (ord_map))
FOR_EACH_VEC_ELT (loc_vec, ix, iter)
{
/* Sometimes, in the unwound macro expansion trace, we want to
@@ -195,7 +196,7 @@ maybe_unwind_expanded_macro_loc (diagnostic_context *context,
/* Don't print trace for locations that are reserved or from
within a system header. */
- const struct line_map *m = NULL;
+ const line_map_ordinary *m = NULL;
source_location l =
linemap_resolve_location (line_table, resolved_def_loc,
LRK_SPELLING_LOCATION, &m);