aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorOwen Avery <powerboat9.gamer@gmail.com>2023-07-08 23:51:51 -0400
committerArthur Cohen <arthur.cohen@embecosm.com>2024-01-16 18:49:36 +0100
commit75763b4c50e6d1ffb8cae6d34d5ffd40add1f8d4 (patch)
treea551ec22a79e34bb46bb3d300a8c084aaee8bbf5 /gcc
parent0830ce0813e8fcac793b210ce2715712b109ce2c (diff)
downloadgcc-75763b4c50e6d1ffb8cae6d34d5ffd40add1f8d4.zip
gcc-75763b4c50e6d1ffb8cae6d34d5ffd40add1f8d4.tar.gz
gcc-75763b4c50e6d1ffb8cae6d34d5ffd40add1f8d4.tar.bz2
gccrs: Remove Linemap::get_location
gcc/rust/ChangeLog: * lex/rust-lex.cc (Lexer::get_current_location): Use linemap_position_for_column. * rust-session-manager.cc (Session::handle_crate_name): Likewise. * rust-linemap.cc (Linemap::get_location): Remove. * rust-linemap.h (Linemap::get_location): Likewise. Signed-off-by: Owen Avery <powerboat9.gamer@gmail.com>
Diffstat (limited to 'gcc')
-rw-r--r--gcc/rust/lex/rust-lex.cc9
-rw-r--r--gcc/rust/rust-linemap.cc8
-rw-r--r--gcc/rust/rust-linemap.h4
-rw-r--r--gcc/rust/rust-session-manager.cc2
4 files changed, 2 insertions, 21 deletions
diff --git a/gcc/rust/lex/rust-lex.cc b/gcc/rust/lex/rust-lex.cc
index b5702a0..6085a83 100644
--- a/gcc/rust/lex/rust-lex.cc
+++ b/gcc/rust/lex/rust-lex.cc
@@ -173,18 +173,11 @@ Lexer::input_source_is_valid_utf8 ()
return raw_input_source->is_valid ();
}
-/* TODO: need to optimise somehow to avoid the virtual function call in the
- * tight loop. Best idea at the moment is CRTP, but that might make lexer
- * implementation annoying when storing the "base class" (i.e. would need
- * template parameter everywhere), although in practice it would mostly just
- * look ugly and make enclosing classes like Parser also require a type
- * parameter. At this point a macro might be better. OK I guess macros can be
- * replaced by constexpr if or something if possible. */
Location
Lexer::get_current_location ()
{
if (line_map)
- return line_map->get_location (current_column);
+ return linemap_position_for_column (line_table, current_column);
else
// If we have no linemap, we're lexing something without proper locations
return UNDEF_LOCATION;
diff --git a/gcc/rust/rust-linemap.cc b/gcc/rust/rust-linemap.cc
index e7257e8..6caa494 100644
--- a/gcc/rust/rust-linemap.cc
+++ b/gcc/rust/rust-linemap.cc
@@ -75,14 +75,6 @@ Linemap::start_line (unsigned lineno, unsigned linesize)
linemap_line_start (line_table, lineno, linesize);
}
-// Get a location.
-
-Location
-Linemap::get_location (unsigned column)
-{
- return Location (linemap_position_for_column (line_table, column));
-}
-
// Return the Linemap to use for the gcc backend.
Linemap *
diff --git a/gcc/rust/rust-linemap.h b/gcc/rust/rust-linemap.h
index 81c622b..5ed8ecf 100644
--- a/gcc/rust/rust-linemap.h
+++ b/gcc/rust/rust-linemap.h
@@ -52,10 +52,6 @@ public:
// This will normally be called for every line in a source file.
void start_line (unsigned int line_number, unsigned int line_size);
- // Get a Location representing column position COLUMN on the current
- // line in the current file.
- Location get_location (unsigned int column);
-
// Stop generating Location values. This will be called after all
// input files have been read, in case any cleanup is required.
void stop ();
diff --git a/gcc/rust/rust-session-manager.cc b/gcc/rust/rust-session-manager.cc
index 27ac1cd..fb856c6 100644
--- a/gcc/rust/rust-session-manager.cc
+++ b/gcc/rust/rust-session-manager.cc
@@ -438,7 +438,7 @@ Session::handle_crate_name (const AST::Crate &parsed_crate)
&& !validate_crate_name (options.crate_name, error))
{
error.emit ();
- rust_inform (linemap->get_location (0),
+ rust_inform (linemap_position_for_column (line_table, 0),
"crate name inferred from this file");
}
}