diff options
author | Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com> | 2024-05-03 20:17:16 +0200 |
---|---|---|
committer | P-E-P <32375388+P-E-P@users.noreply.github.com> | 2024-05-17 15:28:30 +0000 |
commit | 0e7cff81b25b43a7a94de591ea03484e60334879 (patch) | |
tree | 36a82e90396e00c40d53dcad05494833d085f1f3 | |
parent | 1746979fc55534bd8a2b26ac6d9fdf6b5fdca66e (diff) | |
download | gcc-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.cc | 8 | ||||
-rw-r--r-- | gcc/rust/util/rust-hir-map.h | 2 |
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); |