diff options
Diffstat (limited to 'gdb/dwarf2/read.c')
-rw-r--r-- | gdb/dwarf2/read.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c index dd808e0..f6d0624 100644 --- a/gdb/dwarf2/read.c +++ b/gdb/dwarf2/read.c @@ -15300,14 +15300,10 @@ read_structure_type (struct die_info *die, struct dwarf2_cu *cu) TYPE_LENGTH (type) = DW_UNSND (attr); else { - /* For the moment, dynamic type sizes are not supported - by GDB's struct type. The actual size is determined - on-demand when resolving the type of a given object, - so set the type's length to zero for now. Otherwise, - we record an expression as the length, and that expression - could lead to a very large value, which could eventually - lead to us trying to allocate that much memory when creating - a value of that type. */ + struct dynamic_prop prop; + if (attr_to_dynamic_prop (attr, die, cu, &prop, + cu->per_cu->addr_type ())) + add_dyn_prop (DYN_PROP_BYTE_SIZE, prop, type); TYPE_LENGTH (type) = 0; } } |