mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-10-19 13:53:29 +08:00
Allow empty struct expressions in Rust
I learned recently that empty struct expressions, like "X{}", have been promoted from experimental to stable in Rust. This patch changes the Rust expression parser to allow this case. New test case included. Built and regtested on x86-64 Fedora 23, using Rust 1.11 beta. 2016-07-21 Tom Tromey <tom@tromey.com> * rust-lang.c (rust_tuple_struct_type_p): Return false for empty structs. * rust-exp.y (struct_expr_list): Allow empty elements. 2016-07-21 Tom Tromey <tom@tromey.com> * gdb.rust/simple.rs (main): Use empty struct expression. * gdb.rust/simple.exp: Add tests for empty struct expression.
This commit is contained in:
@ -294,7 +294,10 @@ rust_underscore_fields (struct type *type, int offset)
|
||||
int
|
||||
rust_tuple_struct_type_p (struct type *type)
|
||||
{
|
||||
return rust_underscore_fields (type, 0);
|
||||
/* This is just an approximation until DWARF can represent Rust more
|
||||
precisely. We exclude zero-length structs because they may not
|
||||
be tuple structs, and there's no way to tell. */
|
||||
return TYPE_NFIELDS (type) > 0 && rust_underscore_fields (type, 0);
|
||||
}
|
||||
|
||||
/* Return true if a variant TYPE is a tuple variant, false otherwise. */
|
||||
|
Reference in New Issue
Block a user