From FEDORA_PATCHES Mon Sep 17 00:00:00 2001 From: Sergio Durigan Junior Date: Thu, 7 Dec 2017 16:20:31 -0500 Subject: gdb-vla-intel-fix-print-char-array.patch ;; Revert upstream commit 469412dd9ccc4de5874fd3299b105833f36b34cd Revert commit (only the part touching gdb/f-valprint.c): commit 469412dd9ccc4de5874fd3299b105833f36b34cd Author: Christoph Weinmann Date: Fri Sep 8 15:11:47 2017 +0200 Remove C/C++ relevant code in Fortran specific file. Remove code relevant for printing C/C++ Integer values in a Fortran specific file to unify printing of Fortran values. This does not change the output. And adjust its testcase. diff --git a/gdb/f-valprint.c b/gdb/f-valprint.c --- a/gdb/f-valprint.c +++ b/gdb/f-valprint.c @@ -310,7 +310,21 @@ f_value_print_inner (struct value *val, struct ui_file *stream, int recurse, value_print_scalar_formatted (val, &opts, 0, stream); } else - value_print_scalar_formatted (val, options, 0, stream); + { + value_print_scalar_formatted (val, options, 0, stream); + /* C and C++ has no single byte int type, char is used instead. + Since we don't know whether the value is really intended to + be used as an integer or a character, print the character + equivalent as well. */ + if (TYPE_LENGTH (type) == 1) + { + LONGEST c; + + fputs_filtered (" ", stream); + c = unpack_long (type, valaddr); + LA_PRINT_CHAR ((unsigned char) c, type, stream); + } + } break; case TYPE_CODE_STRUCT: diff --git a/gdb/testsuite/gdb.fortran/printing-types.exp b/gdb/testsuite/gdb.fortran/printing-types.exp --- a/gdb/testsuite/gdb.fortran/printing-types.exp +++ b/gdb/testsuite/gdb.fortran/printing-types.exp @@ -30,7 +30,7 @@ if {![fortran_runto_main]} then { gdb_breakpoint [gdb_get_line_number "write"] gdb_continue_to_breakpoint "write" -gdb_test "print oneByte" " = 1" +gdb_test "print oneByte" " = 1 \'\\\\001\'" gdb_test "print twobytes" " = 2" gdb_test "print chvalue" " = \'a\'" gdb_test "print logvalue" " = \.TRUE\."