vla: print "variable length" for unresolved dynamic bounds
authorSanimir Agovic <sanimir.agovic@intel.com>
Thu, 14 Nov 2013 09:55:52 +0000 (09:55 +0000)
committerSanimir Agovic <sanimir.agovic@intel.com>
Fri, 11 Apr 2014 12:43:52 +0000 (13:43 +0100)
commitb86138fb0484f42db6cb83abed1e3d0ad2ec4eac
tree76a5f389812d8050b933a59cb0a0c73c7f27c1cc
parentbcd629a44fff61527430f353cf77e20fe3afc395
vla: print "variable length" for unresolved dynamic bounds

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

Given the following expression

  (gdb) ptype &vla

Gdb evaluates the expression with EVAL_AVOID_SIDE_EFFECTS and thus
does not resolve the bounds information and misinterprets the high
bound as a constant. The current output is:

  type = int (*)[1289346]

this patch deals with this case and prints:

  type = int (*)[variable length]

instead.

* c-typeprint.c (c_type_print_varspec_suffix): Added
check for not yet resolved high bound. If unresolved, print
"variable length" string to the console instead of random
length.
gdb/ChangeLog
gdb/c-typeprint.c