From 31bdd08a9d21a2fd7019bbd7b178c8911a7d2e41 Mon Sep 17 00:00:00 2001 From: David Malcolm Date: Tue, 15 Sep 2015 16:53:01 +0000 Subject: [PATCH] Change of location_get_source_line signature gcc/ChangeLog: * input.h (location_get_source_line): Drop "expanded_location" param in favor of a file and line number. * input.c (location_get_source_line): Likewise. (dump_location_info): Update for change in signature of location_get_source_line. * diagnostic.c (diagnostic_print_caret_line): Likewise. gcc/c-family/ChangeLog: * c-format.c (location_from_offset): Update for change in signature of location_get_source_line. * c-indentation.c (get_visual_column): Likewise. (line_contains_hash_if): Likewise. From-SVN: r227800 --- gcc/ChangeLog | 9 +++++++++ gcc/c-family/ChangeLog | 7 +++++++ gcc/c-family/c-format.c | 2 +- gcc/c-family/c-indentation.c | 10 +++------- gcc/diagnostic.c | 3 ++- gcc/input.c | 14 ++++++++------ gcc/input.h | 2 +- 7 files changed, 31 insertions(+), 16 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0305ca80d73..455afc330fa 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2015-09-15 David Malcolm + + * input.h (location_get_source_line): Drop "expanded_location" + param in favor of a file and line number. + * input.c (location_get_source_line): Likewise. + (dump_location_info): Update for change in signature of + location_get_source_line. + * diagnostic.c (diagnostic_print_caret_line): Likewise. + 2015-09-15 Eric Botcazou * defaults.h (STACK_OLD_CHECK_PROTECT): Adjust for -fno-exceptions. diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog index 888c28f505d..140cda5c81c 100644 --- a/gcc/c-family/ChangeLog +++ b/gcc/c-family/ChangeLog @@ -1,3 +1,10 @@ +2015-09-15 David Malcolm + + * c-format.c (location_from_offset): Update for change in + signature of location_get_source_line. + * c-indentation.c (get_visual_column): Likewise. + (line_contains_hash_if): Likewise. + 2015-09-14 Marek Polacek * c-opts.c (c_common_post_options): Set C++ standard earlier, before diff --git a/gcc/c-family/c-format.c b/gcc/c-family/c-format.c index 2940f92d7d8..ab5807662eb 100644 --- a/gcc/c-family/c-format.c +++ b/gcc/c-family/c-format.c @@ -132,7 +132,7 @@ location_from_offset (location_t loc, int offset) expanded_location s = expand_location_to_spelling_point (loc); int line_width; - const char *line = location_get_source_line (s, &line_width); + const char *line = location_get_source_line (s.file, s.line, &line_width); if (line == NULL) return loc; line += s.column - 1 ; diff --git a/gcc/c-family/c-indentation.c b/gcc/c-family/c-indentation.c index fdfe0a93412..dd3522360b4 100644 --- a/gcc/c-family/c-indentation.c +++ b/gcc/c-family/c-indentation.c @@ -45,7 +45,8 @@ get_visual_column (expanded_location exploc, unsigned int *first_nws = NULL) { int line_len; - const char *line = location_get_source_line (exploc, &line_len); + const char *line = location_get_source_line (exploc.file, exploc.line, + &line_len); if (!line) return false; unsigned int vis_column = 0; @@ -84,13 +85,8 @@ get_visual_column (expanded_location exploc, static bool line_contains_hash_if (const char *file, int line_num) { - expanded_location exploc; - exploc.file = file; - exploc.line = line_num; - exploc.column = 1; - int line_len; - const char *line = location_get_source_line (exploc, &line_len); + const char *line = location_get_source_line (file, line_num, &line_len); if (!line) return false; diff --git a/gcc/diagnostic.c b/gcc/diagnostic.c index e5c3c1dbfec..a1ffe72ea95 100644 --- a/gcc/diagnostic.c +++ b/gcc/diagnostic.c @@ -377,7 +377,8 @@ diagnostic_print_caret_line (diagnostic_context * context, int cmax = MAX (xloc1.column, xloc2.column); int line_width; - const char *line = location_get_source_line (xloc1, &line_width); + const char *line = location_get_source_line (xloc1.file, xloc1.line, + &line_width); if (line == NULL || cmax > line_width) return; diff --git a/gcc/input.c b/gcc/input.c index 59cab5cebef..e7302a42589 100644 --- a/gcc/input.c +++ b/gcc/input.c @@ -684,27 +684,27 @@ read_line_num (fcache *c, size_t line_num, return read_next_line (c, line, line_len); } -/* Return the physical source line that corresponds to xloc in a +/* Return the physical source line that corresponds to FILE_PATH/LINE in a buffer that is statically allocated. The newline is replaced by the null character. Note that the line can contain several null characters, so LINE_LEN, if non-null, points to the actual length of the line. */ const char * -location_get_source_line (expanded_location xloc, +location_get_source_line (const char *file_path, int line, int *line_len) { static char *buffer; static ssize_t len; - if (xloc.line == 0) + if (line == 0) return NULL; - fcache *c = lookup_or_add_file_to_cache_tab (xloc.file); + fcache *c = lookup_or_add_file_to_cache_tab (file_path); if (c == NULL) return NULL; - bool read = read_line_num (c, xloc.line, &buffer, &len); + bool read = read_line_num (c, line, &buffer, &len); if (read && line_len) *line_len = len; @@ -971,7 +971,9 @@ dump_location_info (FILE *stream) /* Beginning of a new source line: draw the line. */ int line_size; - const char *line_text = location_get_source_line (exploc, &line_size); + const char *line_text = location_get_source_line (exploc.file, + exploc.line, + &line_size); if (!line_text) break; fprintf (stream, diff --git a/gcc/input.h b/gcc/input.h index 5ba4d3b46f5..07d8544ed6f 100644 --- a/gcc/input.h +++ b/gcc/input.h @@ -38,7 +38,7 @@ extern char builtins_location_check[(BUILTINS_LOCATION extern bool is_location_from_builtin_token (source_location); extern expanded_location expand_location (source_location); -extern const char *location_get_source_line (expanded_location xloc, +extern const char *location_get_source_line (const char *file_path, int line, int *line_size); extern expanded_location expand_location_to_spelling_point (source_location); extern source_location expansion_point_location_if_in_system_header (source_location); -- 2.30.2