diff options
author | Tom Tromey <tom@tromey.com> | 2017-10-02 12:15:52 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2017-10-02 14:06:43 -0600 |
commit | 01af5e0d09ac9c621e7b280f44a2c7ef55784493 (patch) | |
tree | bd93b3095baf09f76ecf92cf5d5e8f818482676f /gdb/rust-lang.c | |
parent | 888e3ddb20f541220f18709fce832ad0163c3e71 (diff) | |
download | binutils-gdb-01af5e0d09ac9c621e7b280f44a2c7ef55784493.tar.gz |
Allow indexing of &str in Rust
rust_slice_type_p was not recognizing &str as a slice type, so indexing
into (or making a slice of) a slice was not working.
2017-10-02 Tom Tromey <tom@tromey.com>
* rust-lang.c (rust_slice_type_p): Recognize &str as a slice type.
2017-10-02 Tom Tromey <tom@tromey.com>
* gdb.rust/simple.exp: Test index of slice.
Diffstat (limited to 'gdb/rust-lang.c')
-rw-r--r-- | gdb/rust-lang.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gdb/rust-lang.c b/gdb/rust-lang.c index c5764bf8d12..a9895feaf15 100644 --- a/gdb/rust-lang.c +++ b/gdb/rust-lang.c @@ -340,7 +340,8 @@ rust_slice_type_p (struct type *type) { return (TYPE_CODE (type) == TYPE_CODE_STRUCT && TYPE_TAG_NAME (type) != NULL - && strncmp (TYPE_TAG_NAME (type), "&[", 2) == 0); + && (strncmp (TYPE_TAG_NAME (type), "&[", 2) == 0 + || strcmp (TYPE_TAG_NAME (type), "&str") == 0)); } /* Return true if TYPE is a range type, otherwise false. */ |