From 3b2b8feaf4aaa62c7d55ad845c3ff34165a3af22 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Wed, 29 Jun 2011 15:32:40 +0000 Subject: gdb PR fortran/10036: * valprint.h (generic_emit_char, generic_printstr): Declare. * valprint.c (wchar_printable, append_string_as_wide) (print_wchar): Move from c-lang.c. (generic_emit_char): New function; mostly taken from c_emit_char. (generic_printstr): New function; mostly taken from c_printstr. * f-valprint.c (f_val_print) : Handle strings represented as arrays. : Treat as TYPE_CODE_INT; recognize as character type. * f-typeprint.c (f_type_print_base) : Treat identically to TYPE_CODE_INT. * f-lang.c (f_get_encoding): New function. (f_emit_char): Use generic_emit_char. (f_printchar): Replace comment. (f_printstr): Use generic_printstr. * dwarf2read.c (read_base_type) : Handle Fortran "character" types specially. : Make TYPE_CODE_CHAR for Fortran. * c-lang.c (wchar_printable, append_string_as_wide, print_wchar): Move to valprint.c (c_emit_char): Call generic_emit_char. (c_printstr): Call generic_printstr. gdb/testsuite * gdb.fortran/charset.exp: New file. * gdb.fortran/charset.f90: New file. --- gdb/testsuite/ChangeLog | 5 ++++ gdb/testsuite/gdb.fortran/charset.exp | 45 +++++++++++++++++++++++++++++++++++ gdb/testsuite/gdb.fortran/charset.f90 | 10 ++++++++ 3 files changed, 60 insertions(+) create mode 100644 gdb/testsuite/gdb.fortran/charset.exp create mode 100644 gdb/testsuite/gdb.fortran/charset.f90 (limited to 'gdb/testsuite') diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 83a1e8f..f156a7c 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2011-06-29 Tom Tromey + * gdb.fortran/charset.exp: New file. + * gdb.fortran/charset.f90: New file. + +2011-06-29 Tom Tromey + PR testsuite/12040: * lib/future.exp: New file, mostly extracted from ada.exp. Rewrote compatibility code to use rename. diff --git a/gdb/testsuite/gdb.fortran/charset.exp b/gdb/testsuite/gdb.fortran/charset.exp new file mode 100644 index 0000000..95b7037 --- /dev/null +++ b/gdb/testsuite/gdb.fortran/charset.exp @@ -0,0 +1,45 @@ +# Copyright 2011 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 . + +# This file is part of the gdb testsuite. It contains tests for evaluating +# Fortran subarray expression. + +if { [skip_fortran_tests] } { return -1 } + +set testfile "charset" +set srcfile ${testfile}.f90 +if { [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} {debug additional_flags=-fbackslash f90}] } { + return -1 +} + +if ![runto MAIN__] { + perror "Couldn't run to MAIN__" + continue +} + +gdb_breakpoint [gdb_get_line_number "break-here"] +gdb_continue_to_breakpoint "break-here" + +gdb_test "print x" \ + " = 'j'" \ + "print fortran narrow character" + +gdb_test "print c" \ + " = 4_'k'" \ + "print fortran wide character" + +gdb_test "print str" \ + " = 4_'lmnop'" \ + "print fortran wide string" diff --git a/gdb/testsuite/gdb.fortran/charset.f90 b/gdb/testsuite/gdb.fortran/charset.f90 new file mode 100644 index 0000000..15cf360 --- /dev/null +++ b/gdb/testsuite/gdb.fortran/charset.f90 @@ -0,0 +1,10 @@ +character(kind=1) :: x +character(kind=4) :: c +character(kind=4,len=5) :: str +x = 'j' +c = 4_'k' +str = 4_'lmnop' +! break-here +print *, c +print *, str +end -- cgit v1.1