* gdb.base/break.c (multi_line_if_conditional): New function.
authorJeff Law <law@redhat.com>
Mon, 7 Jan 2002 19:21:27 +0000 (19:21 +0000)
committerJeff Law <law@redhat.com>
Mon, 7 Jan 2002 19:21:27 +0000 (19:21 +0000)
        (multi_ilne_while_conditional): Likewise.
        * gdb.base/break.exp: Verify that a breakpoint on a multi-line
        IF or WHILE condition puts the breakpoint at the start of
        the condition.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/break.c
gdb/testsuite/gdb.base/break.exp

index 61310d0..b4b8cd0 100644 (file)
@@ -1,5 +1,11 @@
 Mon Jan  7 12:22:18 2002  Jeffrey A Law  (law@redhat.com)
 
+       * gdb.base/break.c (multi_line_if_conditional): New function.
+       (multi_ilne_while_conditional): Likewise.
+       * gdb.base/break.exp: Verify that a breakpoint on a multi-line
+       IF or WHILE condition puts the breakpoint at the start of
+       the condition.
+
        * gdb.base/selftest.exp (backtrace through signal handler): Remove
        hppa*-*-hpux* expected failure.
        * gdb.base/structs.exp (do_function_calls): Similarly.
index e7e6af6..9e458b3 100644 (file)
@@ -99,3 +99,33 @@ int value;
     return (value);
 }
 
+#ifdef PROTOTYPES
+int multi_line_if_conditional (int a, int b, int c)
+#else
+int multi_line_if_conditional (a, b, c)
+  int a, b, c;
+#endif
+{
+  if (a
+      && b
+      && c)
+    return 0;
+  else
+    return 1;
+}
+
+#ifdef PROTOTYPES
+int multi_line_while_conditional (int a, int b, int c)
+#else
+int multi_line_while_conditional (a, b, c)
+  int a, b, c;
+#endif
+{
+  while (a
+      && b
+      && c)
+    {
+      a--, b--, c--;
+    }
+  return 0;
+}
index 798e0c2..166f097 100644 (file)
@@ -122,6 +122,18 @@ gdb_test "break $srcfile:85" \
 
 
 #
+# Test putting a break at the start of a multi-line if conditional.
+# Verify the breakpoint was put at the start of the conditional.
+#
+gdb_test "break multi_line_if_conditional" \
+    "Breakpoint.*at.* file .*$srcfile, line 109\\." \
+    "breakpoint at start of multi line if conditional"
+
+gdb_test "break multi_line_while_conditional" \
+    "Breakpoint.*at.* file .*$srcfile, line 124\\." \
+    "breakpoint at start of multi line while conditional"
+
+#
 # check to see what breakpoints are set
 #
 if [target_info exists gdb_stub] {
@@ -141,7 +153,9 @@ gdb_test "info break" \
 \[0-9\]+\[\t \]+breakpoint     keep y.* in factorial$proto at .*$srcfile:96.*
 \[0-9\]+\[\t \]+breakpoint     keep y.* in main at .*$srcfile:79.*
 \[0-9\]+\[\t \]+breakpoint     keep y.* in main at .*$srcfile:79.*
-\[0-9\]+\[\t \]+breakpoint     keep y.* in main at .*$srcfile:85" \
+\[0-9\]+\[\t \]+breakpoint     keep y.* in main at .*$srcfile:85.*
+\[0-9\]+\[\t \]+breakpoint     keep y.* in multi_line_if_conditional at .*$srcfile:109.*
+\[0-9\]+\[\t \]+breakpoint     keep y.* in multi_line_while_conditional at .*$srcfile:124" \
     "breakpoint info"