aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2011-06-29 15:32:40 +0000
committerTom Tromey <tromey@redhat.com>2011-06-29 15:32:40 +0000
commit3b2b8feaf4aaa62c7d55ad845c3ff34165a3af22 (patch)
tree05f9c11e7c9408d89574648e7b0b2a9c0aec63a7 /gdb/testsuite
parent168e6d44026869c1cd8dd66d7ef7cdeecdcff77d (diff)
downloadgdb-3b2b8feaf4aaa62c7d55ad845c3ff34165a3af22.zip
gdb-3b2b8feaf4aaa62c7d55ad845c3ff34165a3af22.tar.gz
gdb-3b2b8feaf4aaa62c7d55ad845c3ff34165a3af22.tar.bz2
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) <TYPE_CODE_ARRAY>: Handle strings represented as arrays. <TYPE_CODE_CHAR>: Treat as TYPE_CODE_INT; recognize as character type. * f-typeprint.c (f_type_print_base) <TYPE_CODE_CHAR>: 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) <DW_ATE_unsigned>: Handle Fortran "character" types specially. <DW_ATE_signed_char, DW_ATE_unsigned_char>: 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.
Diffstat (limited to 'gdb/testsuite')
-rw-r--r--gdb/testsuite/ChangeLog5
-rw-r--r--gdb/testsuite/gdb.fortran/charset.exp45
-rw-r--r--gdb/testsuite/gdb.fortran/charset.f9010
3 files changed, 60 insertions, 0 deletions
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 <tromey@redhat.com>
+ * gdb.fortran/charset.exp: New file.
+ * gdb.fortran/charset.f90: New file.
+
+2011-06-29 Tom Tromey <tromey@redhat.com>
+
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 <http://www.gnu.org/licenses/>.
+
+# 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