From: Kushal Pal <kushalpal...@gmail.com> This commit adds location_t to BIR::Loan, this location will point to location is source code where the borrow occured, this information will be useful for reporting borrow-checking errors.
gcc/rust/ChangeLog: * checks/errors/borrowck/rust-bir-builder-internal.h: Fill location for loan. * checks/errors/borrowck/rust-bir-place.h (struct Loan): Add location field. Signed-off-by: Kushal Pal <kushalpal...@gmail.com> --- gcc/rust/checks/errors/borrowck/rust-bir-builder-internal.h | 5 +++-- gcc/rust/checks/errors/borrowck/rust-bir-place.h | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/gcc/rust/checks/errors/borrowck/rust-bir-builder-internal.h b/gcc/rust/checks/errors/borrowck/rust-bir-builder-internal.h index 46f811ea25a..16fcb6abca7 100644 --- a/gcc/rust/checks/errors/borrowck/rust-bir-builder-internal.h +++ b/gcc/rust/checks/errors/borrowck/rust-bir-builder-internal.h @@ -307,7 +307,7 @@ protected: // Helpers to add BIR statements location_t location) { auto mutability = ty->as<const TyTy::ReferenceType> ()->mutability (); - auto loan = ctx.place_db.add_loan ({mutability, place_id}); + auto loan = ctx.place_db.add_loan ({mutability, place_id, location}); push_tmp_assignment (new BorrowExpr (place_id, loan, ctx.place_db.get_next_free_region ()), ty, location); @@ -600,7 +600,8 @@ protected: { // TODO: deduplicate with borrow_place auto loan = ctx.place_db.add_loan ( - {ty->as<const TyTy::ReferenceType> ()->mutability (), place_id}); + {ty->as<const TyTy::ReferenceType> ()->mutability (), place_id, + location}); return_expr (new BorrowExpr (place_id, loan, ctx.place_db.get_next_free_region ()), ty, location); diff --git a/gcc/rust/checks/errors/borrowck/rust-bir-place.h b/gcc/rust/checks/errors/borrowck/rust-bir-place.h index 8c38e8ed3cd..66da3dab380 100644 --- a/gcc/rust/checks/errors/borrowck/rust-bir-place.h +++ b/gcc/rust/checks/errors/borrowck/rust-bir-place.h @@ -162,6 +162,7 @@ struct Loan { Mutability mutability; PlaceId place; + location_t location; }; /** Allocated places and keeps track of paths. */ -- 2.45.2