From 469412dd9ccc4de5874fd3299b105833f36b34cd Mon Sep 17 00:00:00 2001 From: Christoph Weinmann Date: Fri, 8 Sep 2017 15:11:47 +0200 Subject: [PATCH] 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. --- gdb/ChangeLog | 5 +++ gdb/f-valprint.c | 18 ++-------- gdb/testsuite/ChangeLog | 5 +++ gdb/testsuite/gdb.fortran/printing-types.exp | 35 ++++++++++++++++++++ gdb/testsuite/gdb.fortran/printing-types.f90 | 27 +++++++++++++++ 5 files changed, 74 insertions(+), 16 deletions(-) create mode 100644 gdb/testsuite/gdb.fortran/printing-types.exp create mode 100644 gdb/testsuite/gdb.fortran/printing-types.f90 diff --git a/gdb/ChangeLog b/gdb/ChangeLog index f201b18dca..941091bfda 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2017-09-08 Christoph Weinmann + + * f-valprint.c (f_val_print): Remove check for one byte + sized integers. Remove printing of character type. + 2017-09-08 Frank Penczek Christoph Weinmann Bernhard Heckel diff --git a/gdb/f-valprint.c b/gdb/f-valprint.c index 4234447bbb..8fc894ae62 100644 --- a/gdb/f-valprint.c +++ b/gdb/f-valprint.c @@ -310,22 +310,8 @@ f_val_print (struct type *type, int embedded_offset, original_value, &opts, 0, stream); } else - { - val_print_scalar_formatted (type, embedded_offset, - original_value, 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 + embedded_offset); - LA_PRINT_CHAR ((unsigned char) c, type, stream); - } - } + val_print_scalar_formatted (type, embedded_offset, + original_value, options, 0, stream); break; case TYPE_CODE_STRUCT: diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 5835acc994..8d8dc3c04c 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2017-09-08 Christoph Weinmann + + * gdb.fortran/printing-types.exp: New file. + * gdb.fortran/printing-types.exp: New file. + 2017-09-08 Bernhard Heckel * gdb.fortran/vla-ptype.exp: Fix typos. diff --git a/gdb/testsuite/gdb.fortran/printing-types.exp b/gdb/testsuite/gdb.fortran/printing-types.exp new file mode 100644 index 0000000000..085de4fc8f --- /dev/null +++ b/gdb/testsuite/gdb.fortran/printing-types.exp @@ -0,0 +1,35 @@ +# Copyright 2017 Free Software Foundation, Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +if {[skip_fortran_tests]} { return -1 } + +standard_testfile .f90 + +if {[prepare_for_testing $testfile.exp $testfile $srcfile {debug f90}]} { + return -1 +} + +if {![runto MAIN__]} then { + untested "Could not run to breakpoint MAIN__" + return -1 +} + +gdb_breakpoint [gdb_get_line_number "write"] +gdb_continue_to_breakpoint "write" + +gdb_test "print oneByte" " = 1" +gdb_test "print twobytes" " = 2" +gdb_test "print chvalue" " = \'a\'" +gdb_test "print logvalue" " = \.TRUE\." diff --git a/gdb/testsuite/gdb.fortran/printing-types.f90 b/gdb/testsuite/gdb.fortran/printing-types.f90 new file mode 100644 index 0000000000..749aa7cf05 --- /dev/null +++ b/gdb/testsuite/gdb.fortran/printing-types.f90 @@ -0,0 +1,27 @@ +! Copyright 2017 Free Software Foundation, Inc. +! +! This program is free software; you can redistribute it and/or modify +! it under the terms of the GNU General Public License as published by +! the Free Software Foundation; either version 3 of the License, or +! (at your option) any later version. +! +! This program is distributed in the hope that it will be useful, +! but WITHOUT ANY WARRANTY; without even the implied warranty of +! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +! GNU General Public License for more details. +! +! You should have received a copy of the GNU General Public License +! along with this program. If not, see . + +program prog + integer(1) :: oneByte + integer(2) :: twoBytes + character :: chValue + logical(1) :: logValue + + oneByte = 1 + twoBytes = 2 + chValue = 'a' + logValue = .true. + write(*,*) s +end -- 2.34.1