diff options
author | Kushal Pal <kushalpal109@gmail.com> | 2024-07-09 10:37:27 +0000 |
---|---|---|
committer | P-E-P <32375388+P-E-P@users.noreply.github.com> | 2024-08-01 10:38:50 +0000 |
commit | bcd860f7f54a241ca8a2ce6fb4d61069fd7139d0 (patch) | |
tree | 27a1393e85de41d925deb87848b5cacf60eec0b2 /gcc | |
parent | f2c807127b5c88ca0bd4993fe8315d865b8c5ba5 (diff) | |
download | gcc-bcd860f7f54a241ca8a2ce6fb4d61069fd7139d0.zip gcc-bcd860f7f54a241ca8a2ce6fb4d61069fd7139d0.tar.gz gcc-bcd860f7f54a241ca8a2ce6fb4d61069fd7139d0.tar.bz2 |
Add location to BIR::Loan
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 <kushalpal109@gmail.com>
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/rust/checks/errors/borrowck/rust-bir-builder-internal.h | 5 | ||||
-rw-r--r-- | 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 877c34b..e542c4e 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 752c8f4..06faa77 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. */ |