]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
gccrs: Remove Linemap::get_location
authorOwen Avery <powerboat9.gamer@gmail.com>
Sun, 9 Jul 2023 03:51:51 +0000 (23:51 -0400)
committerArthur Cohen <arthur.cohen@embecosm.com>
Tue, 16 Jan 2024 17:49:36 +0000 (18:49 +0100)
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>
gcc/rust/lex/rust-lex.cc
gcc/rust/rust-linemap.cc
gcc/rust/rust-linemap.h
gcc/rust/rust-session-manager.cc

index b5702a0966efe9ca2890fa9a63a6ce87d31e0957..6085a8358017d9d0c81d84f52bcc68ca698915ed 100644 (file)
@@ -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;
index e7257e87c6d88887e3bfd3a8f44b5a75f0540d07..6caa49410a4ed658ff1eb6b99fed3dc029acb56d 100644 (file)
@@ -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 *
index 81c622b5006216e15f264bd2b3174f6d699df628..5ed8ecf56834cc670f8eeb310012164a00f926a5 100644 (file)
@@ -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 ();
index 27ac1cd78865e1e328526ff7e55bde0fdab9d86f..fb856c6a927b535cb16f76caae5e89181f73fd23 100644 (file)
@@ -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");
     }
 }