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);

Reply via email to