c_value_print: Revert 'val' to a reference for TYPE_CODE_STRUCT
authorMartin Galvan <martin.galvan@tallertechnologies.com>
Wed, 27 Apr 2016 15:01:14 +0000 (12:01 -0300)
committerMartin Galvan <martin.galvan@tallertechnologies.com>
Wed, 27 Apr 2016 15:05:43 +0000 (12:05 -0300)
commit476350ba4800f1144b125f6511a5e25b223cc90b
tree8defec0d2e6829eb6fc3c1e32b3953fb0660c1ad
parent310cdbb65119c60959578460576ad316e3e2fb11
c_value_print: Revert 'val' to a reference for TYPE_CODE_STRUCT

Currently c_value_print will turn struct reference values into pointers before
doing a set of RTTI checks.  This was introduced as a fix to PR c++/15401.
If there's RTTI the pointer will be adjusted and converted back to a reference.
However, if there's no RTTI the value will still be treated as a pointer during
the remainder of the function.
This patch moves the conversion down so that it's always performed when needed.

Notice this currently has not user-visible effects, so can be seen as a small
code cleanup.  However, it'll be necessary for the bug-fix for handling
synthetic C++ references.  It causes no testsuite regressions.

gdb/ChangeLog:
2016-04-26  Martin Galvan  <martin.galvan@tallertechnologies.com>

* c-valprint.c (c_value_print): Always convert val back to reference
type if we converted it to a pointer type.
gdb/ChangeLog
gdb/c-valprint.c