aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbors[bot] <26634292+bors[bot]@users.noreply.github.com>2021-05-21 13:49:46 +0000
committerGitHub <noreply@github.com>2021-05-21 13:49:46 +0000
commit99b73780e6e30f962c01532d3ec189ceeecf7f93 (patch)
tree016f996162a8e9363927448242e167b6db490caf
parent6e808c647e53bf3805c47a8ae699091c3a4919bf (diff)
parent586d1d8066d7c62afaab8cbb44cd2310e8aa138e (diff)
downloadgcc-99b73780e6e30f962c01532d3ec189ceeecf7f93.zip
gcc-99b73780e6e30f962c01532d3ec189ceeecf7f93.tar.gz
gcc-99b73780e6e30f962c01532d3ec189ceeecf7f93.tar.bz2
Merge #438
438: DefId is a bit mask of CrateNum & LocalDefId r=philberty a=philberty The DefId was being constructed wrongly by not fully shifting the CrateNum over to be masked correctly. Addresses #437 I am not sure if this fixes #437 but this definitely was not correct. Co-authored-by: Philip Herron <philip.herron@embecosm.com>
-rw-r--r--gcc/rust/util/rust-hir-map.cc14
1 files changed, 5 insertions, 9 deletions
diff --git a/gcc/rust/util/rust-hir-map.cc b/gcc/rust/util/rust-hir-map.cc
index 3a0cbb1..a669339 100644
--- a/gcc/rust/util/rust-hir-map.cc
+++ b/gcc/rust/util/rust-hir-map.cc
@@ -70,11 +70,7 @@ NodeMapping::get_defid () const
DefId
NodeMapping::get_defid (CrateNum crate_num, LocalDefId local_defid)
{
- DefId val = 0;
- val |= crate_num;
- val = val << sizeof (uint32_t);
- val |= local_defid;
- return val;
+ return ((uint64_t) crate_num << 32) | local_defid;
}
std::string
@@ -220,14 +216,14 @@ Mappings::insert_hir_crate (HIR::Crate *crate)
void
Mappings::insert_defid_mapping (DefId id, HIR::Item *item)
{
- CrateNum crateNum = (id & DEF_ID_CRATE_MASK) >> sizeof (uint32_t);
- LocalDefId localDefId = id & DEF_ID_LOCAL_DEF_MASK;
+ CrateNum crate_num = (id & DEF_ID_CRATE_MASK) >> 32;
+ LocalDefId local_def_id = id & DEF_ID_LOCAL_DEF_MASK;
rust_assert (lookup_defid (id) == nullptr);
- rust_assert (lookup_local_defid (crateNum, localDefId) == nullptr);
+ rust_assert (lookup_local_defid (crate_num, local_def_id) == nullptr);
defIdMappings[id] = item;
- insert_local_defid_mapping (crateNum, localDefId, item);
+ insert_local_defid_mapping (crate_num, local_def_id, item);
}
HIR::Item *