aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>2024-05-03 20:17:16 +0200
committerP-E-P <32375388+P-E-P@users.noreply.github.com>2024-05-17 15:28:30 +0000
commit0e7cff81b25b43a7a94de591ea03484e60334879 (patch)
tree36a82e90396e00c40d53dcad05494833d085f1f3
parent1746979fc55534bd8a2b26ac6d9fdf6b5fdca66e (diff)
downloadgcc-0e7cff81b25b43a7a94de591ea03484e60334879.zip
gcc-0e7cff81b25b43a7a94de591ea03484e60334879.tar.gz
gcc-0e7cff81b25b43a7a94de591ea03484e60334879.tar.bz2
Change lookup_hir_smt's return type with optional
Wrap the function's return type within an optional in order to differentiate missing values from null pointers. gcc/rust/ChangeLog: * util/rust-hir-map.cc (Mappings::insert_hir_stmt): Change call site to accomodate new return type. (Mappings::lookup_hir_stmt): Change the function's return type. (Mappings::resolve_nodeid_to_stmt): Adapt call site to new return type. * util/rust-hir-map.h: Update the function's prototype. Signed-off-by: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
-rw-r--r--gcc/rust/util/rust-hir-map.cc8
-rw-r--r--gcc/rust/util/rust-hir-map.h2
2 files changed, 5 insertions, 5 deletions
diff --git a/gcc/rust/util/rust-hir-map.cc b/gcc/rust/util/rust-hir-map.cc
index de6cb4d..3083f2c 100644
--- a/gcc/rust/util/rust-hir-map.cc
+++ b/gcc/rust/util/rust-hir-map.cc
@@ -612,18 +612,18 @@ void
Mappings::insert_hir_stmt (HIR::Stmt *stmt)
{
auto id = stmt->get_mappings ().get_hirid ();
- rust_assert (lookup_hir_stmt (id) == nullptr);
+ rust_assert (!lookup_hir_stmt (id));
hirStmtMappings[id] = stmt;
insert_node_to_hir (stmt->get_mappings ().get_nodeid (), id);
}
-HIR::Stmt *
+tl::optional<HIR::Stmt *>
Mappings::lookup_hir_stmt (HirId id)
{
auto it = hirStmtMappings.find (id);
if (it == hirStmtMappings.end ())
- return nullptr;
+ return tl::nullopt;
return it->second;
}
@@ -796,7 +796,7 @@ Mappings::resolve_nodeid_to_stmt (NodeId id)
return tl::nullopt;
HirId resolved = it->second;
- return {lookup_hir_stmt (resolved)};
+ return lookup_hir_stmt (resolved);
}
void
diff --git a/gcc/rust/util/rust-hir-map.h b/gcc/rust/util/rust-hir-map.h
index 583f630..15b1142 100644
--- a/gcc/rust/util/rust-hir-map.h
+++ b/gcc/rust/util/rust-hir-map.h
@@ -158,7 +158,7 @@ public:
tl::optional<HIR::Type *> lookup_hir_type (HirId id);
void insert_hir_stmt (HIR::Stmt *stmt);
- HIR::Stmt *lookup_hir_stmt (HirId id);
+ tl::optional<HIR::Stmt *> lookup_hir_stmt (HirId id);
void insert_hir_param (HIR::FunctionParam *type);
HIR::FunctionParam *lookup_hir_param (HirId id);