Hi, when compiling gcc/rust/checks/errors/borrowck/rust-borrow-checker-diagnostics.cc with clang, it emits the following warning:
gcc/rust/checks/errors/borrowck/rust-borrow-checker-diagnostics.cc:145:46: warning: non-constant-expression cannot be narrowed from type 'Polonius::Loan' (aka 'unsigned long') to 'uint32_t' (aka 'unsigned int') in initializer list [-Wc++11-narrowing] I'd hope that for indexing that is never really a problem, nevertheless if narrowing is taking place, I guess it can be argued it should be made explicit. I have so far only tested this with the clang compile, I will try to do a bootstrap with rust-enabled too. Philip, Pierre, would you be willing to incorporate this into your tree and commit it to master at gcc.gnu.org from there? Or should I commit it to master at gcc.gnu.org and you'll merge it from there? Thanks, Martin gcc/rust/ChangeLog: 2025-06-23 Martin Jambor <mjam...@suse.cz> * checks/errors/borrowck/rust-borrow-checker-diagnostics.cc (BorrowCheckerDiagnostics::get_loan): Type cast loan to uint32_t. --- .../checks/errors/borrowck/rust-borrow-checker-diagnostics.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/rust/checks/errors/borrowck/rust-borrow-checker-diagnostics.cc b/gcc/rust/checks/errors/borrowck/rust-borrow-checker-diagnostics.cc index 6c67706780b..adf1448791e 100644 --- a/gcc/rust/checks/errors/borrowck/rust-borrow-checker-diagnostics.cc +++ b/gcc/rust/checks/errors/borrowck/rust-borrow-checker-diagnostics.cc @@ -142,7 +142,7 @@ BorrowCheckerDiagnostics::get_statement (Polonius::Point point) const BIR::Loan & BorrowCheckerDiagnostics::get_loan (Polonius::Loan loan) { - return bir_function.place_db.get_loans ()[{loan}]; + return bir_function.place_db.get_loans ()[{(uint32_t) loan}]; } const HIR::LifetimeParam * -- 2.49.0