From: Pierre-Emmanuel Patry <[email protected]>
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]>
---
gcc/rust/ast/rust-expr.h | 10 +---------
gcc/testsuite/rust/compile/issue-4301.rs | 3 +++
2 files changed, 4 insertions(+), 9 deletions(-)
create mode 100644 gcc/testsuite/rust/compile/issue-4301.rs
diff --git a/gcc/rust/ast/rust-expr.h b/gcc/rust/ast/rust-expr.h
index 3c36238c6ee..55a8df81829 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 00000000000..a6d524ed8dc
--- /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 }
--
2.50.1