compiler: add location_file
authorIan Lance Taylor <iant@golang.org>
Mon, 29 Oct 2018 18:44:39 +0000 (18:44 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Mon, 29 Oct 2018 18:44:39 +0000 (18:44 +0000)
    Add support for getting the file name from a Location value.  This
    will be used by later work.

    Reviewed-on: https://go-review.googlesource.com/c/145318

* go-linemap.cc (Gcc_linemap::location_file): New method.

From-SVN: r265598

gcc/go/ChangeLog
gcc/go/go-linemap.cc
gcc/go/gofrontend/MERGE
gcc/go/gofrontend/go-linemap.h

index 587013f875295926659c21f41ca0178af915be05..915630daec98427a8fe25452e0dbc6296c98c399 100644 (file)
@@ -1,3 +1,7 @@
+2018-10-29  Ian Lance Taylor  <iant@golang.org>
+
+       * go-linemap.cc (Gcc_linemap::location_file): New method.
+
 2018-10-17  David Malcolm  <dmalcolm@redhat.com>
 
        * Make-lang.in (selftest-go): New.
index 2accb95e5c476d66e83360f6ae8385c12863adf0..a4d4b7d13e2c85fedfa1c26bd2e2c8986e85f962 100644 (file)
@@ -34,6 +34,9 @@ class Gcc_linemap : public Linemap
   std::string
   to_string(Location);
 
+  std::string
+  location_file(Location);
+
   int
   location_line(Location);
 
@@ -93,7 +96,16 @@ Gcc_linemap::to_string(Location location)
   return ss.str();
 }
 
-// Return the line number for a given location (for debugging dumps)
+// Return the file name for a given location.
+
+std::string
+Gcc_linemap::location_file(Location loc)
+{
+  return LOCATION_FILE(loc.gcc_location());
+}
+
+// Return the line number for a given location.
+
 int
 Gcc_linemap::location_line(Location loc)
 {
index bf2b28f1bc6d96a5f552db11f1941f2c89027f20..7074d3e508adf4487e8ce5b1484cc3acad2a4faa 100644 (file)
@@ -1,4 +1,4 @@
-8902fb43c569e4d3ec5bd143bfa8cb6bf2836780
+e4a421a01ad1fcc4315e530e79272604f3683051
 
 The first line of this file holds the git revision number of the last
 merge done from the gofrontend repository.
index 704efdbfa53f92f6dc2e6ebea05312e19f3d70e0..1811c9db4111dce8fc862eaf3bbf6278adae4576 100644 (file)
@@ -63,7 +63,11 @@ class Linemap
   virtual std::string
   to_string(Location) = 0;
 
-  // Return the line number for a given location (for debugging dumps)
+  // Return the file name for a given location.
+  virtual std::string
+  location_file(Location) = 0;
+
+  // Return the line number for a given location.
   virtual int
   location_line(Location) = 0;
 
@@ -140,7 +144,15 @@ class Linemap
     return Linemap::instance_->to_string(loc);
   }
 
-  // Return line number for location
+  // Return the file name of a location.
+  static std::string
+  location_to_file(Location loc)
+  {
+    go_assert(Linemap::instance_ != NULL);
+    return Linemap::instance_->location_file(loc);
+  }
+
+  // Return line number of a location.
   static int
   location_to_line(Location loc)
   {