vla: enable sizeof operator to work with variable length arrays
authorSanimir Agovic <sanimir.agovic@intel.com>
Wed, 9 Oct 2013 14:28:22 +0000 (15:28 +0100)
committerSanimir Agovic <sanimir.agovic@intel.com>
Fri, 11 Apr 2014 12:43:49 +0000 (13:43 +0100)
commit26cb189f8b46dbe7b2d485525329a8919005ca8a
tree8fe10666e55f41ae02a7e885fe3ba758dc4fd9bd
parent37c1ab67a35025d37d42c449deab5f254f9f59da
vla: enable sizeof operator to work with variable length arrays

In C99 the sizeof operator computes the size of a variable length array
at runtime (6.5.3.4 The sizeof operator). This patch reflects the semantic
change in the debugger.

We now are able to get the size of a vla:

1| void foo (size_t n) {
2|   int vla[n];
3| }

(gdb) p sizeof(vla)

yields N * sizeof(int).

* eval.c (evaluate_subexp_for_sizeof) <OP_VAR_VALUE>: If the type
passed to sizeof is dynamic evaluate the argument to compute the length.
gdb/ChangeLog
gdb/eval.c