mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2026-08-27 00:26:02 -04:00
Fix crash in f-typeprint.c
I noticed a crash in f-typeprint.c that was hidden by an xfail: XFAIL: gdb.fortran/vla-array.exp: print variable length string array type (GDB internal error) (PRMS gcc/101826) I think this was introduced by commit6594ca4a("do not handle a NULL linebuffer in pager_file::puts") but not detected due to the xfail. It seems bad for an xfail to cover up a crash but I haven't investigated that. Meanwhile, this patch fixes the crash by checking for a NULL pointer when calling gdb_puts. Approved-by: Kevin Buettner <kevinb@redhat.com> (cherry picked from commit18400a9cdf)
This commit is contained in:
parent
11f85add6d
commit
3d00b5bbb4
1 changed files with 7 additions and 4 deletions
|
|
@ -412,9 +412,11 @@ f_language::f_type_print_base (struct type *type, struct ui_file *stream,
|
|||
if (show > 0)
|
||||
f_type_print_derivation_info (type, stream);
|
||||
|
||||
gdb_puts (" ", stream);
|
||||
|
||||
gdb_puts (type->name (), stream);
|
||||
if (type->name () != nullptr)
|
||||
{
|
||||
gdb_puts (" ", stream);
|
||||
gdb_puts (type->name (), stream);
|
||||
}
|
||||
|
||||
/* According to the definition,
|
||||
we only print structure elements in case show > 0. */
|
||||
|
|
@ -432,7 +434,8 @@ f_language::f_type_print_base (struct type *type, struct ui_file *stream,
|
|||
gdb_puts ("\n", stream);
|
||||
}
|
||||
gdb_printf (stream, "%*sEnd Type ", level, "");
|
||||
gdb_puts (type->name (), stream);
|
||||
if (type->name () != nullptr)
|
||||
gdb_puts (type->name (), stream);
|
||||
}
|
||||
break;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue