]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
gccrs: Used `IndexVec` for place_map
authorKushal Pal <kushalpal109@gmail.com>
Wed, 28 Aug 2024 06:39:28 +0000 (06:39 +0000)
committerArthur Cohen <arthur.cohen@embecosm.com>
Wed, 19 Mar 2025 14:32:10 +0000 (15:32 +0100)
gcc/rust/ChangeLog:

* checks/errors/borrowck/rust-bir-dump.cc (Dump::go): Use strong
type instead of size_t.
(Dump::visit_place): Likewise.
(Dump::visit_scope): Likewise.
* checks/errors/borrowck/rust-bir-dump.h (class Dump): Use
IndeVec for place_map.

Signed-off-by: Kushal Pal <kushalpal109@gmail.com>
gcc/rust/checks/errors/borrowck/rust-bir-dump.cc
gcc/rust/checks/errors/borrowck/rust-bir-dump.h

index c9e01545c6aaa9c10387e2d97a9ae11c40033022..3864b81a4d9e33d63e511f6a325ab2be01588480 100644 (file)
@@ -121,9 +121,9 @@ Dump::go (bool enable_simplify_cfg)
     {
       bb_fold_map[i] = i;
     }
-  for (size_t i = 0; i < place_map.size (); ++i)
+  for (PlaceId i = INVALID_PLACE; i.value < place_map.size (); ++i.value)
     {
-      place_map[i] = {i};
+      place_map[i] = i;
     }
 
   if (enable_simplify_cfg)
@@ -133,7 +133,7 @@ Dump::go (bool enable_simplify_cfg)
 
   stream << "fn " << name << "(";
   print_comma_separated (stream, func.arguments, [this] (PlaceId place_id) {
-    stream << "_" << place_map[place_id.value].value << ": "
+    stream << "_" << place_map[place_id].value << ": "
           << get_tyty_name (func.place_db[place_id].tyty);
   });
   stream << ") -> " << get_tyty_name (func.place_db[RETURN_VALUE_PLACE].tyty);
@@ -245,7 +245,7 @@ Dump::visit_place (PlaceId place_id)
     {
     case Place::TEMPORARY:
     case Place::VARIABLE:
-      stream << "_" << place_map[place_id.value].value;
+      stream << "_" << place_map[place_id].value;
       break;
     case Place::DEREF:
       stream << "(";
@@ -382,7 +382,7 @@ Dump::visit_scope (ScopeId id, size_t depth)
   for (auto &local : scope.locals)
     {
       indent (depth + 1) << "let _";
-      stream << place_map[local.value].value << ": "
+      stream << place_map[local].value << ": "
             << get_tyty_name (func.place_db[local].tyty);
       stream << ";\t";
 
index bd6cbb1ee50a436b01f9248801f1e3f69147a92c..1bf3f2d6593c0c4caac82b187e1220dac7681574 100644 (file)
@@ -35,7 +35,7 @@ class Dump : public Visitor
   const std::string &name;
 
   IndexVec<BasicBlockId, BasicBlockId> bb_fold_map;
-  std::vector<PlaceId> place_map;
+  IndexVec<PlaceId, PlaceId> place_map;
 
   PlaceId statement_place = INVALID_PLACE;
   BasicBlockId statement_bb = INVALID_BB;