https://gcc.gnu.org/g:ffa5f60ad9051e83fdacca631126c347970e1d52
commit r15-8128-gffa5f60ad9051e83fdacca631126c347970e1d52 Author: Pierre-Emmanuel Patry <pierre-emmanuel.pa...@embecosm.com> Date: Fri May 3 20:08:14 2024 +0200 gccrs: Change lookup_hir_type return type with an optional Wrap the function's return type with an optional in order to tell appart a null pointer from a missing value. gcc/rust/ChangeLog: * util/rust-hir-map.cc (Mappings::insert_hir_type): Change call site to accomodate the new return type. (Mappings::lookup_hir_type): Change the function's 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 | 6 +++--- gcc/rust/util/rust-hir-map.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/gcc/rust/util/rust-hir-map.cc b/gcc/rust/util/rust-hir-map.cc index c3929d8f3cee..ae11e67a57b1 100644 --- a/gcc/rust/util/rust-hir-map.cc +++ b/gcc/rust/util/rust-hir-map.cc @@ -592,18 +592,18 @@ void Mappings::insert_hir_type (HIR::Type *type) { auto id = type->get_mappings ().get_hirid (); - rust_assert (lookup_hir_type (id) == nullptr); + rust_assert (!lookup_hir_type (id)); hirTypeMappings[id] = type; insert_node_to_hir (type->get_mappings ().get_nodeid (), id); } -HIR::Type * +tl::optional<HIR::Type *> Mappings::lookup_hir_type (HirId id) { auto it = hirTypeMappings.find (id); if (it == hirTypeMappings.end ()) - return nullptr; + return tl::nullopt; return it->second; } diff --git a/gcc/rust/util/rust-hir-map.h b/gcc/rust/util/rust-hir-map.h index d04232f3d5dc..e4f47852ed98 100644 --- a/gcc/rust/util/rust-hir-map.h +++ b/gcc/rust/util/rust-hir-map.h @@ -155,7 +155,7 @@ public: tl::optional<HIR::GenericParam *> lookup_hir_generic_param (HirId id); void insert_hir_type (HIR::Type *type); - HIR::Type *lookup_hir_type (HirId id); + tl::optional<HIR::Type *> lookup_hir_type (HirId id); void insert_hir_stmt (HIR::Stmt *stmt); HIR::Stmt *lookup_hir_stmt (HirId id);