From 6a05b0ada8a6f74310dbdc1b4c587bcfa7fc5a81 Mon Sep 17 00:00:00 2001 From: Arthur Cohen Date: Fri, 2 Aug 2024 11:18:51 +0200 Subject: [PATCH] borrowck: Avoid overloading issues on 32bit architectures On architectures where `size_t` is `unsigned int`, such as 32bit x86, we encounter an issue with `PlaceId` and `FreeRegion` being aliases to the same types. This poses an issue for overloading functions for these two types, such as `push_subset` in that case. This commit renames one of these `push_subset` functions to avoid the issue, but this should be fixed with a newtype pattern for these two types. gcc/rust/ChangeLog: * checks/errors/borrowck/rust-bir-fact-collector.h (points): Rename `push_subset(PlaceId, PlaceId)` to `push_subset_place(PlaceId, PlaceId)` --- gcc/rust/checks/errors/borrowck/rust-bir-fact-collector.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gcc/rust/checks/errors/borrowck/rust-bir-fact-collector.h b/gcc/rust/checks/errors/borrowck/rust-bir-fact-collector.h index 901b37be8d19..1cd6b4d480d8 100644 --- a/gcc/rust/checks/errors/borrowck/rust-bir-fact-collector.h +++ b/gcc/rust/checks/errors/borrowck/rust-bir-fact-collector.h @@ -334,7 +334,7 @@ class FactCollector : public Visitor expr.get_rhs () - 1, current_bb, current_stmt); issue_read_move (expr.get_rhs ()); - push_subset (lhs, expr.get_rhs ()); + push_place_subset (lhs, expr.get_rhs ()); } void visit (const CallExpr &expr) override @@ -662,7 +662,7 @@ class FactCollector : public Visitor } } - void push_subset (PlaceId lhs, PlaceId rhs) + void push_place_subset (PlaceId lhs, PlaceId rhs) { auto &lhs_place = place_db[lhs]; auto &rhs_place = place_db[rhs];