aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/testsuite/ChangeLog8
-rw-r--r--gdb/testsuite/gdb.base/advance.c5
-rw-r--r--gdb/testsuite/gdb.base/advance.exp6
-rw-r--r--gdb/testsuite/gdb.base/until.exp2
4 files changed, 19 insertions, 2 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 82f3843..5c5ee5b 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2003-02-01 Michael Chastain <mec@shout.net>
+
+ * gdb.base/advance.c (marker1): New marker function.
+ * gdb.base/advance.exp: When the 'advance' command lands on the
+ return breakpoint, it can legitimately stop on either the
+ current line or the next line. Accommodate both outcomes.
+ * gdb.base/until.exp: Likewise.
+
2003-02-02 Andrew Cagney <ac131313@redhat.com>
2002-11-10 Jason Molenda (jason-cl@molenda.com):
diff --git a/gdb/testsuite/gdb.base/advance.c b/gdb/testsuite/gdb.base/advance.c
index 2ae3cc5..8066dee 100644
--- a/gdb/testsuite/gdb.base/advance.c
+++ b/gdb/testsuite/gdb.base/advance.c
@@ -29,6 +29,10 @@ int func3 ()
x = 4;
}
+void marker1 ()
+{
+}
+
int
main ()
{
@@ -38,6 +42,7 @@ main ()
b = 3; /* advance this location */
func (c); /* stop here after leaving current frame */
+ marker1 (); /* stop here after leaving current frame */
func3 (); /* break here */
result = bar (b + foo (c));
return 0; /* advance malformed */
diff --git a/gdb/testsuite/gdb.base/advance.exp b/gdb/testsuite/gdb.base/advance.exp
index aea5a6d..e5061d8 100644
--- a/gdb/testsuite/gdb.base/advance.exp
+++ b/gdb/testsuite/gdb.base/advance.exp
@@ -63,8 +63,12 @@ gdb_test "advance func" \
# Verify that "advance <funcname>" when funcname is NOT called by the current
# frame, stops at the end of the current frame.
#
+# gdb can legitimately stop on either the current line or the next line,
+# depending on whether the machine instruction for 'call' on the current
+# line has more instructions after it or not.
+#
gdb_test "advance func3" \
- "in main.*func \\(c\\).*stop here after leaving current frame..."\
+ "(in main|).*(func \\(c\\)|marker1 \\(\\)).*stop here after leaving current frame..."\
"advance function not called by current frame"
# break at main again
diff --git a/gdb/testsuite/gdb.base/until.exp b/gdb/testsuite/gdb.base/until.exp
index 8159332..f646c6d 100644
--- a/gdb/testsuite/gdb.base/until.exp
+++ b/gdb/testsuite/gdb.base/until.exp
@@ -76,6 +76,6 @@ delete_breakpoints
# stop at main, the caller, where we put the 'guard' breakpoint.
#
gdb_test "until marker3" \
- "$hex in main.*argc.*argv.*envp.*at.*${srcfile}:82.*marker2 \\(43\\)." \
+ "($hex in |)main.*argc.*argv.*envp.*at.*${srcfile}:(82.*marker2 \\(43\\)|83.*marker3 \\(.stack., .trace.\\))." \
"until func, not called by current frame"