mirror of
https://github.com/bminor/binutils-gdb.git
synced 2025-12-26 01:07:52 +00:00
vla: enable sizeof operator for indirection
This patch enables the sizeof operator for indirections:
1| void foo (size_t n) {
2| int vla[n];
3| int *vla_ptr = &vla;
4| }
(gdb) p sizeof(*vla_ptr)
yields sizeof (size_t) * n.
gdb/ChangeLog:
* eval.c (evaluate_subexp_for_sizeof) <UNOP_IND>: Create an indirect
value and retrieve the dynamic type size.
This commit is contained in:
committed by
Joel Brobecker
parent
4ad88275f8
commit
3c8452d46a
@@ -3026,7 +3026,9 @@ evaluate_subexp_for_sizeof (struct expression *exp, int *pos)
|
||||
&& TYPE_CODE (type) != TYPE_CODE_ARRAY)
|
||||
error (_("Attempt to take contents of a non-pointer value."));
|
||||
type = TYPE_TARGET_TYPE (type);
|
||||
break;
|
||||
if (is_dynamic_type (type))
|
||||
type = value_type (value_ind (val));
|
||||
return value_from_longest (size_type, (LONGEST) TYPE_LENGTH (type));
|
||||
|
||||
case UNOP_MEMVAL:
|
||||
(*pos) += 3;
|
||||
|
||||
Reference in New Issue
Block a user