aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/util/rust-hir-map.cc
diff options
context:
space:
mode:
authorNirmal Patel <npate012@gmail.com>2021-11-02 21:01:13 -0400
committerNirmal Patel <npate012@gmail.com>2021-11-07 11:13:29 -0500
commita7c31383def5c499864d61c5d00a1575d1cbff81 (patch)
tree82d8bd640e581df5f58e2db8b5512e7cad38267a /gcc/rust/util/rust-hir-map.cc
parent5f0df4812c37fc428b5508e019e9fb7f8a7b77b1 (diff)
downloadgcc-a7c31383def5c499864d61c5d00a1575d1cbff81.zip
gcc-a7c31383def5c499864d61c5d00a1575d1cbff81.tar.gz
gcc-a7c31383def5c499864d61c5d00a1575d1cbff81.tar.bz2
Changed DefId type from uint64_t to be struct
DefId was uint64_t previously but it has been changed to be a struct. In order to reduce code breakage, ==, !=, and < operators have been implemented for DefId. Since DefId is now a proper struct, bit manipulation code has been removed with member accesses. Fixes #439 Signed-off-by: Nirmal Patel <npate012@gmail.com>
Diffstat (limited to 'gcc/rust/util/rust-hir-map.cc')
-rw-r--r--gcc/rust/util/rust-hir-map.cc6
1 files changed, 3 insertions, 3 deletions
diff --git a/gcc/rust/util/rust-hir-map.cc b/gcc/rust/util/rust-hir-map.cc
index e965c23..9e5b509 100644
--- a/gcc/rust/util/rust-hir-map.cc
+++ b/gcc/rust/util/rust-hir-map.cc
@@ -63,7 +63,7 @@ NodeMapping::get_defid () const
DefId
NodeMapping::get_defid (CrateNum crate_num, LocalDefId local_defid)
{
- return ((uint64_t) crate_num << 32) | local_defid;
+ return DefId{crate_num, local_defid};
}
std::string
@@ -209,8 +209,8 @@ Mappings::insert_hir_crate (HIR::Crate *crate)
void
Mappings::insert_defid_mapping (DefId id, HIR::Item *item)
{
- CrateNum crate_num = (id & DEF_ID_CRATE_MASK) >> 32;
- LocalDefId local_def_id = id & DEF_ID_LOCAL_DEF_MASK;
+ CrateNum crate_num = id.crateNum;
+ LocalDefId local_def_id = id.localDefId;
rust_assert (lookup_defid (id) == nullptr);
rust_assert (lookup_local_defid (crate_num, local_def_id) == nullptr);