https://gcc.gnu.org/g:18c092b8c25e982cf47e701cec760236f31cbf2a
commit r16-6190-g18c092b8c25e982cf47e701cec760236f31cbf2a Author: Pierre-Emmanuel Patry <[email protected]> Date: Fri Dec 5 16:55:47 2025 +0100 gccrs: Use the path location for MetaItemPathExpr Previously we aborted when querying the location on a MetaItemPathExpr, the location should start on the path and continue over the expr but we do not support that kind of location range yet. gcc/rust/ChangeLog: * ast/rust-expr.h: Use path locus. gcc/testsuite/ChangeLog: * rust/compile/issue-4301.rs: New test. Signed-off-by: Pierre-Emmanuel Patry <[email protected]> Diff: --- gcc/rust/ast/rust-expr.h | 10 +--------- gcc/testsuite/rust/compile/issue-4301.rs | 3 +++ 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/gcc/rust/ast/rust-expr.h b/gcc/rust/ast/rust-expr.h index 3c36238c6ee6..55a8df818293 100644 --- a/gcc/rust/ast/rust-expr.h +++ b/gcc/rust/ast/rust-expr.h @@ -294,15 +294,7 @@ public: return MetaItem::ItemKind::PathExpr; } - // There are two Locations in MetaItemPathExpr (path and expr), - // we have no idea use which of them, just simply return UNKNOWN_LOCATION - // now. - // Maybe we will figure out when we really need the location in the future. - location_t get_locus () const override - { - rust_unreachable (); - return UNKNOWN_LOCATION; - } + location_t get_locus () const override { return path.get_locus (); } void accept_vis (ASTVisitor &vis) override; diff --git a/gcc/testsuite/rust/compile/issue-4301.rs b/gcc/testsuite/rust/compile/issue-4301.rs new file mode 100644 index 000000000000..a6d524ed8dcf --- /dev/null +++ b/gcc/testsuite/rust/compile/issue-4301.rs @@ -0,0 +1,3 @@ +#![feature(unused_variables, server = b"\0")] +// { dg-error {unknown feature .server = .} "" { target *-*-* } .-1 } +// { dg-error {unknown feature .unused_variables.} "" { target *-*-* } .-2 }
