From 15d208f6517305d45947801f890fb785ce970baf Mon Sep 17 00:00:00 2001 From: Fred Fish Date: Thu, 26 Feb 2004 22:19:18 +0000 Subject: [PATCH] Reviewed and approved by cagney@gnu.org. 2004-02-26 Fred Fish * gdb.arch/gdb1431.c: Remove. * gdb.arch/gdb1431.s: New file, copy of gdb1291.s * gdb.arch/gdb1431.exp: Use "advance" correctly instead of "until" incorrectly. --- gdb/testsuite/ChangeLog | 7 ++ gdb/testsuite/gdb.arch/gdb1431.c | 65 --------------- gdb/testsuite/gdb.arch/gdb1431.exp | 21 ++--- gdb/testsuite/gdb.arch/gdb1431.s | 129 +++++++++++++++++++++++++++++ 4 files changed, 145 insertions(+), 77 deletions(-) delete mode 100755 gdb/testsuite/gdb.arch/gdb1431.c create mode 100644 gdb/testsuite/gdb.arch/gdb1431.s diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 49822c6baa..97a657b902 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2004-02-26 Fred Fish + + * gdb.arch/gdb1431.c: Remove. + * gdb.arch/gdb1431.s: New file, copy of gdb1291.s + * gdb.arch/gdb1431.exp: Use "advance" correctly instead + of "until" incorrectly. + 2004-02-26 J. Brobecker * gdb.cp/class2.cc (empty): New class. diff --git a/gdb/testsuite/gdb.arch/gdb1431.c b/gdb/testsuite/gdb.arch/gdb1431.c deleted file mode 100755 index 64f5c60b39..0000000000 --- a/gdb/testsuite/gdb.arch/gdb1431.c +++ /dev/null @@ -1,65 +0,0 @@ -/* Copyright 2003, 2004 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 2 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, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - - Please email any bugs, comments, and/or additions to this file to: - bug-gdb@gnu.org - - This file is part of the gdb testsuite. */ - -void sub1 (void); -void sub2 (void); - -main() -{ - sub1(); - sub2(); -} - -asm(".text\n" - " .align 5\n" - "sub1:\n" - "_sub1:\n" - " mov.l r14,@-r15\n" - " add #-128,r15\n" - " add #-128,r15\n" - " mov r15,r14\n" - " mov.w .STACK1,r7\n" - " add r7,r14\n" - " mov r14,r15\n" - " mov.l @r15+,r14\n" - " rts\n" - " nop\n" - " .align 1\n" - ".STACK1:\n" - " .short 256\n"); - -asm(".text\n" - " .align 5\n" - "sub2:\n" - "_sub2:\n" - " mov.l r14,@-r15\n" - " mov.w .STACK2,r3\n" - " sub r3,r15\n" - " mov r15,r14\n" - " mov.w .STACK2,r7\n" - " add r7,r14\n" - " mov r14,r15\n" - " mov.l @r15+,r14\n" - " rts\n" - " nop\n" - " .align 1\n" - ".STACK2:\n" - " .short 260\n"); diff --git a/gdb/testsuite/gdb.arch/gdb1431.exp b/gdb/testsuite/gdb.arch/gdb1431.exp index 15bff46c77..697c9f89b2 100644 --- a/gdb/testsuite/gdb.arch/gdb1431.exp +++ b/gdb/testsuite/gdb.arch/gdb1431.exp @@ -1,4 +1,4 @@ -# Copyright 2003 Free Software Foundation, Inc. +# Copyright 2003, 2004 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 @@ -20,6 +20,9 @@ # This file is part of the gdb testsuite. # Tests for PR:1431. Catch gdb not continuing to second function properly. +# Note that originally this bug was reported as a problem with the "until" +# command, which actually is behaving as currently defined. What apparently +# was expected was the behavior of the newer "advance" command. if $tracelevel { strace $tracelevel @@ -36,9 +39,9 @@ if ![istarget "sh-*-*"] then { } set testfile "gdb1431" -set srcfile ${testfile}.c +set srcfile ${testfile}.s set binfile ${objdir}/${subdir}/${testfile} -if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } { +if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable ""] != "" } { gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail." } @@ -55,12 +58,6 @@ if ![runto_main] then { gdb_suppress_tests } -gdb_test "u sub1" "sub1*" "get to sub1" -gdb_test "bt" "#0\[ \t\]*$hex \\(\\) at sh-bt.*\r\n#1\[ \t\]*$hex in main.*" \ - "backtrace in gdb1291" - -kfail "gdb/1431" "u sub2" -# This is what we would expect to be able to do: -#gdb_test "u sub2" "sub2*" "get to sub2" -#gdb_test "bt" "#0\[ \t\]*$hex \\(\\) at sh-bt.*\r\n#1\[ \t\]*$hex in main.*" \ -# "backtrace in gdb1291" +gdb_test "advance sub1" "hello world\r\n$hex in sub1 \\(\\)" "get to sub1" +gdb_test "advance sub2" "$hex in main \\(\\)" "advance returns from sub1 frame" +gdb_test "advance sub2" "$hex in sub2 \\(\\)" "get to sub2" diff --git a/gdb/testsuite/gdb.arch/gdb1431.s b/gdb/testsuite/gdb.arch/gdb1431.s new file mode 100644 index 0000000000..36b43d260f --- /dev/null +++ b/gdb/testsuite/gdb.arch/gdb1431.s @@ -0,0 +1,129 @@ +! Copyright 2004 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 2 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, write to the Free Software +! Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +! +! Please email any bugs, comments, and/or additions to this file to: +! bug-gdb@gnu.org +! +! This file is part of the gdb testsuite. +! +! It was generated using "sh-elf-gcc -S gdb1431.c", using the following +! source file: +! +! #include +! +! main() +! { +! printf("hello world\n"); +! sub1(); +! sub2(); +! } +! sub1() +! { +! int buf[64]; +! +! } +! +! sub2() +! { +! int buf[65]; +! +! } +! +! We use a pregenerated assembly file as the test input to avoid possible +! problems with future versions of gcc generating different code. + + .file "gdb1431.c" + .text + .section .rodata + .align 2 +.LC0: + .string "hello world\n" + .text + .align 1 + .global _main + .type _main, @function +_main: + mov.l r14,@-r15 + sts.l pr,@-r15 + mov r15,r14 + mov.l .L2,r1 + mov r1,r4 + mov.l .L3,r1 + jsr @r1 + nop + mov.l .L4,r1 + jsr @r1 + nop + mov.l .L5,r1 + jsr @r1 + nop + mov r14,r15 + lds.l @r15+,pr + mov.l @r15+,r14 + rts + nop +.L6: + .align 2 +.L2: + .long .LC0 +.L3: + .long _printf +.L4: + .long _sub1 +.L5: + .long _sub2 + .size _main, .-_main + .align 1 + .global _sub1 + .type _sub1, @function +_sub1: + mov.l r14,@-r15 + sts.l pr,@-r15 + add #-128,r15 + add #-128,r15 + mov r15,r14 + mov.w .L8,r7 + add r7,r14 + mov r14,r15 + lds.l @r15+,pr + mov.l @r15+,r14 + rts + nop + .align 1 +.L8: + .short 256 + .size _sub1, .-_sub1 + .align 1 + .global _sub2 + .type _sub2, @function +_sub2: + mov.l r14,@-r15 + sts.l pr,@-r15 + mov.w .L11,r1 + sub r1,r15 + mov r15,r14 + mov.w .L11,r7 + add r7,r14 + mov r14,r15 + lds.l @r15+,pr + mov.l @r15+,r14 + rts + nop + .align 1 +.L11: + .short 260 + .size _sub2, .-_sub2 + .ident "GCC: (GNU) 3.5.0 20040204 (experimental)"