https://gcc.gnu.org/g:8f8d6d1a03ecca39928f98b8045e278bee665b78
commit r15-8129-g8f8d6d1a03ecca39928f98b8045e278bee665b78 Author: Pierre-Emmanuel Patry <pierre-emmanuel.pa...@embecosm.com> Date: Fri May 3 20:17:16 2024 +0200 gccrs: 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.pa...@embecosm.com> Diff: --- gcc/rust/util/rust-hir-map.cc | 8 ++++---- 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 ae11e67a57b1..025b3121b273 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 e4f47852ed98..f6db83d6e117 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);