gdb/
authorJan Kratochvil <jan.kratochvil@redhat.com>
Wed, 7 Jan 2009 12:39:13 +0000 (12:39 +0000)
committerJan Kratochvil <jan.kratochvil@redhat.com>
Wed, 7 Jan 2009 12:39:13 +0000 (12:39 +0000)
* f-typeprint.c (f_type_print_base <TYPE_CODE_STRUCT>): Fix output
spacing, a regression from 2008-04-22.

gdb/testsuite/
* gdb.fortran/derived-type.exp: New variables int4 and real4.  Match
now the output exactly, using less wildcards.  Expect also the output
of gfortran-4.3.  Update for the f-valprint.c modification from
2008-04-22.
* gdb.fortran/subarray.exp: Expect also the output of gfortran-4.3.
Remove gdb_test test names where matching the command.

gdb/ChangeLog
gdb/f-typeprint.c
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.fortran/derived-type.exp
gdb/testsuite/gdb.fortran/subarray.exp

index feea4fd..8daaae9 100644 (file)
@@ -1,3 +1,8 @@
+2009-01-07  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+       * f-typeprint.c (f_type_print_base <TYPE_CODE_STRUCT>): Fix output
+       spacing, a regression from 2008-04-22.
+
 2009-01-07  Joel Brobecker  <brobecker@adacore.com>
 
        * utils.c (gdb_print_host_address): Adjust implementation to
index 419a883..f5c10ab 100644 (file)
@@ -359,8 +359,7 @@ f_type_print_base (struct type *type, struct ui_file *stream, int show,
          f_type_print_base (TYPE_FIELD_TYPE (type, index), stream, show,
                             level + 4);
          fputs_filtered (" :: ", stream);
-         fprintfi_filtered (level, stream, "%s",
-                            TYPE_FIELD_NAME (type, index));
+         fputs_filtered (TYPE_FIELD_NAME (type, index), stream);
          f_type_print_varspec_suffix (TYPE_FIELD_TYPE (type, index),
                                       stream, 0, 0, 0);
          fputs_filtered ("\n", stream);
index 3b9c4b4..c826676 100644 (file)
@@ -1,3 +1,12 @@
+2009-01-07  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+       * gdb.fortran/derived-type.exp: New variables int4 and real4.  Match
+       now the output exactly, using less wildcards.  Expect also the output
+       of gfortran-4.3.  Update for the f-valprint.c modification from
+       2008-04-22.
+       * gdb.fortran/subarray.exp: Expect also the output of gfortran-4.3.
+       Remove gdb_test test names where matching the command.
+
 2009-01-01  Pedro Alves  <pedro@codesourcery.com>
 
        PR breakpoints/9681:
index 86e4474..47e68f2 100644 (file)
@@ -41,24 +41,57 @@ if ![runto MAIN__] then {
     continue
 }
 
-gdb_test "ptype p" \
-    "type = Type bar.*int4.*\:\: c.*real.*\:\: d.*End Type bar" \
-    "ptype p"
-gdb_test "ptype q" \
-    "type = Type foo.*real.*\:\: a.*Type bar.*int4.*\:\: c.*real.*\:\: d.*End Type bar \:\: x.*character.*\\(7\\) \:\: b.*End Type foo" \
-    "type-printing for derived type"
+# Depending on the compiler version being used, the name of the 4-byte integer
+# and real types can be printed differently.  For instance, gfortran-4.1 uses
+# "int4" whereas gfortran-4.3 uses "int(kind=4)".
+set int4 "(int4|integer\\(kind=4\\))"
+set real4 "(real4|real\\(kind=4\\))"
+
+gdb_test "ptype p" "type = Type bar\r\n *${int4} :: c\r\n *${real4} :: d\r\n *End Type bar"
+
+set test "type-printing for derived type"
+gdb_test_multiple "ptype q" $test {
+    -re "type = Type foo\r\n *${real4} :: a\r\n *Type bar\r\n *${int4} :: c\r\n *${real4} :: d\r\n *End Type bar :: x\r\n *character\\*7 :: b\r\n *End Type foo\r\n$gdb_prompt $" {
+       pass $test
+    }
+    -re "type = Type foo\r\n *${real4} :: a\r\n *Type bar\r\n *${int4} :: c\r\n *${real4} :: d\r\n *End Type bar :: x\r\n *character :: b\\(7\\)\r\n *End Type foo\r\n$gdb_prompt $" {
+       # Compiler should produce string, not an array of characters.
+       setup_xfail "*-*-*"
+       fail $test
+    }
+}
 
 gdb_breakpoint [gdb_get_line_number "print"]
 gdb_continue_to_breakpoint "print"
 
-gdb_test "print p" "\\$\[0-9\]+ = \\{ 1, 2.375\\}"
+gdb_test "print p" "\\$\[0-9\]+ = \\( 1, 2\\.375 \\)"
 gdb_test "print p%c" "\\$\[0-9\]+ = 1"
-gdb_test "print p%d" "\\$\[0-9\]+ = 2.375"
-gdb_test "print q%a" "\\$\[0-9\]+ = 3.125"
-gdb_test "print q%b" "\\$\[0-9\]+ = \\(.*a.*b.*c.*d.*e.*f.*g.*\\)"
+gdb_test "print p%d" "\\$\[0-9\]+ = 2\\.375"
+gdb_test "print q%a" "\\$\[0-9\]+ = 3\\.125"
+
+set test "print q%b"
+gdb_test_multiple $test $test {
+    -re "\\$\[0-9\]+ = 'abcdefg'\r\n$gdb_prompt $" {
+       pass $test
+    }
+    -re "\\$\[0-9\]+ = \\(97 'a', 98 'b', 99 'c', 100 'd', 101 'e', 102 'f', 103 'g'\\)\r\n$gdb_prompt $" {
+       # Compiler should produce string, not an array of characters.
+       setup_xfail "*-*-*"
+       fail $test
+    }
+}
+
 gdb_test "print q%x%c" "\\$\[0-9\]+ = 1"
-gdb_test "print q%x%d" "\\$\[0-9\]+ = 2.375"
-gdb_test "print q" \
-    "\\$\[0-9\]+ = \\{ 3.125, \\{ 1, 2.375\\}, \\(.*a.*b.*c.*d.*e.*f.*g.*\\)\\}" \
-    "print q"
+gdb_test "print q%x%d" "\\$\[0-9\]+ = 2\\.375"
 
+set test "print q"
+gdb_test_multiple $test $test {
+    -re "\\$\[0-9\]+ = \\( 3.125, \\( 1, 2\\.375 \\), 'abcdefg' \\)\r\n$gdb_prompt $" {
+       pass $test
+    }
+    -re "\\$\[0-9\]+ = \\( 3.125, \\( 1, 2\\.375 \\), \\(97 'a', 98 'b', 99 'c', 100 'd', 101 'e', 102 'f', 103 'g'\\) \\)\r\n$gdb_prompt $" {
+       # Compiler should produce string, not an array of characters.
+       setup_xfail "*-*-*"
+       fail $test
+    }
+}
index a12a007..b8ddf26 100644 (file)
@@ -53,13 +53,55 @@ gdb_test "continue" \
 
 # Test four different kinds of subarray expression evaluation.
 
-gdb_test "print str(2:4)" ".*1 = \\(98 'b', 99 'c', 100 'd'\\).*" "print str(2:4)"
-gdb_test "print str(:3)" ".*2 = \\(97 'a', 98 'b', 99 'c'\\).*" "print str(:3)"
-gdb_test "print str(5:)" ".*3 = \\(101 'e', 102 'f', 103 'g'\\).*" "print str(5:)"
-gdb_test "print str(:)" ".*4 = \\(97 'a', 98 'b', 99 'c', 100 'd', 101 'e', 102 'f', 103 'g'\\).*" "print str(:)"
+set test "print str(2:4)"
+gdb_test_multiple $test $test {
+    -re "\\$\[0-9\]+ = 'bcd'\r\n$gdb_prompt $" {
+       pass $test
+    }
+    -re "\\$\[0-9\]+ = \\(98 'b', 99 'c', 100 'd'\\)\r\n$gdb_prompt $" {
+       # Compiler should produce string, not an array of characters.
+       setup_xfail "*-*-*"
+       fail $test
+    }
+}
+
+set test "print str(:3)"
+gdb_test_multiple $test $test {
+    -re "\\$\[0-9\]+ = 'abc'\r\n$gdb_prompt $" {
+       pass $test
+    }
+    -re "\\$\[0-9\]+ = \\(97 'a', 98 'b', 99 'c'\\)\r\n$gdb_prompt $" {
+       # Compiler should produce string, not an array of characters.
+       setup_xfail "*-*-*"
+       fail $test
+    }
+}
 
-gdb_test "print array(2:4)" ".*5 = \\(2, 3, 4\\).*" "print array(2:4)"
-gdb_test "print array(:3)" ".*6 = \\(1, 2, 3\\).*" "print array(:3)"
-gdb_test "print array(5:)" ".*7 = \\(5, 6, 7\\).*" "print array(5:)"
-gdb_test "print array(:)" ".*8 = \\(1, 2, 3, 4, 5, 6, 7\\).*" "print array(:)"
+set test "print str(5:)"
+gdb_test_multiple $test $test {
+    -re "\\$\[0-9\]+ = 'efg'\r\n$gdb_prompt $" {
+       pass $test
+    }
+    -re "\\$\[0-9\]+ = \\(101 'e', 102 'f', 103 'g'\\)\r\n$gdb_prompt $" {
+       # Compiler should produce string, not an array of characters.
+       setup_xfail "*-*-*"
+       fail $test
+    }
+}
+
+set test "print str(:)"
+gdb_test_multiple $test $test {
+    -re "\\$\[0-9\]+ = 'abcdefg'\r\n$gdb_prompt $" {
+       pass $test
+    }
+    -re "\\$\[0-9\]+ = \\(97 'a', 98 'b', 99 'c', 100 'd', 101 'e', 102 'f', 103 'g'\\)\r\n$gdb_prompt $" {
+       # Compiler should produce string, not an array of characters.
+       setup_xfail "*-*-*"
+       fail $test
+    }
+}
 
+gdb_test "print array(2:4)" "\\$\[0-9\]+ = \\(2, 3, 4\\)"
+gdb_test "print array(:3)" "\\$\[0-9\]+ = \\(1, 2, 3\\)"
+gdb_test "print array(5:)" "\\$\[0-9\]+ = \\(5, 6, 7\\)"
+gdb_test "print array(:)" "\\$\[0-9\]+ = \\(1, 2, 3, 4, 5, 6, 7\\)"