Fix crash in "finish"
authorTom Tromey <tom@tromey.com>
Sat, 29 Dec 2018 17:46:07 +0000 (10:46 -0700)
committerTom Tromey <tom@tromey.com>
Sun, 6 Jan 2019 16:31:51 +0000 (09:31 -0700)
commitf097f5ad808bd535236a65077f40e9d082a4ec0b
treefa4dc08ce6be4fd7368b1af3538c0b038e8722f9
parentbb86dd08b25624206c3943b56b79784928e58464
Fix crash in "finish"

PR gdb/28155 notes a crash in "finish" that occurs with a particular
source file compiled by clang.

The bug is the typical gdb problem of a missing call to check_typedef.
clang emits a function whose return type is a typedef to void.
get_return_value asserts that the return type is not void, but the
callers were not using check_typedef first.

gdb/ChangeLog
2019-01-06  Tom Tromey  <tom@tromey.com>

PR gdb/28155:
* python/py-finishbreakpoint.c (bpfinishpy_init): Use
check_typedef.
* infcmd.c (finish_command_fsm_should_stop): Use check_typedef.
(print_return_value): Likewise.

gdb/testsuite/ChangeLog
2019-01-06  Tom Tromey  <tom@tromey.com>

PR gdb/28155:
* gdb.dwarf2/typedef-void-finish.exp: New file.
gdb/ChangeLog
gdb/infcmd.c
gdb/python/py-finishbreakpoint.c
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.dwarf2/typedef-void-finish.exp [new file with mode: 0644]