Print Rust unsized array types a bit more nicely
It's a bit difficult to create an unsized array type in Rust, but if you do, right now ptype will show something like "[u8; ]". It really should print "[u8]", though, which is what this patch implements. This is part of PR 21466. Built and regtested on x86-64 Fedora 25. I'm checking this in. ChangeLog 2017-05-21 Tom Tromey <tom@tromey.com> PR rust/21466: * rust-lang.c (rust_print_type) <TYPE_CODE_ARRAY>: Print unsized arrays as "[T]", not "[T; ]". testsuite/ChangeLog 2017-05-21 Tom Tromey <tom@tromey.com> PR rust/21466: * gdb.rust/unsized.exp: New file. * gdb.rust/unsized.rs: New file.
This commit is contained in:
parent
56298620ac
commit
e6cf65f283
5 changed files with 82 additions and 3 deletions
|
@ -893,13 +893,12 @@ rust_print_type (struct type *type, const char *varstring,
|
|||
fputs_filtered ("[", stream);
|
||||
rust_print_type (TYPE_TARGET_TYPE (type), NULL,
|
||||
stream, show - 1, level, flags);
|
||||
fputs_filtered ("; ", stream);
|
||||
|
||||
if (TYPE_HIGH_BOUND_KIND (TYPE_INDEX_TYPE (type)) == PROP_LOCEXPR
|
||||
|| TYPE_HIGH_BOUND_KIND (TYPE_INDEX_TYPE (type)) == PROP_LOCLIST)
|
||||
fprintf_filtered (stream, "variable length");
|
||||
fprintf_filtered (stream, "; variable length");
|
||||
else if (get_array_bounds (type, &low_bound, &high_bound))
|
||||
fprintf_filtered (stream, "%s",
|
||||
fprintf_filtered (stream, "; %s",
|
||||
plongest (high_bound - low_bound + 1));
|
||||
fputs_filtered ("]", stream);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue