+2016-01-25  Pedro Alves  <palves@redhat.com>
+
+       * gdb.base/step-sw-breakpoint-adjust-pc.exp (foreach_with_prefix):
+       Delete, moved to lib/gdb.exp.
+       * gdb.threads/forking-threads-plus-breakpoint.exp
+       (foreach_with_prefix): Likewise.
+       * gdb.threads/process-dies-while-handling-bp.exp
+       (foreach_with_prefix): Likewise.
+       * lib/gdb.exp (foreach_with_prefix): New procedure.
+
 2016-01-25  Marcin KoĆcielnicki  <koriakin@0x04.net>
 
        * gdb.trace/backtrace.exp: Bump stack collection fudge factor.
 
     }
 }
 
-# Wrapper for foreach that calls with_test_prefix on each iteration,
-# including the iterator's current value in the prefix.
-
-proc foreach_with_prefix {var list body} {
-    upvar 1 $var myvar
-    foreach myvar $list {
-       with_test_prefix "$var=$myvar" {
-           uplevel 1 $body
-       }
-    }
-}
-
 foreach_with_prefix non_stop { "off" "on" } {
     foreach_with_prefix displaced_step { "off" "on" } {
        foreach_with_prefix always_inserted { "off" "on" } {
 
        "only inferior 1 left"
 }
 
-# Wrapper for foreach that calls with_test_prefix on each iteration,
-# including the iterator's current value in the prefix.
-
-proc foreach_with_prefix {var list body} {
-    upvar 1 $var myvar
-    foreach myvar $list {
-       with_test_prefix "$var=$myvar" {
-           uplevel 1 $body
-       }
-    }
-}
-
 foreach_with_prefix cond_bp_target {1 0} {
     foreach_with_prefix detach_on_fork {"on" "off"} {
        do_test $cond_bp_target $detach_on_fork
 
        "no threads left"
 }
 
-# Wrapper for foreach that calls with_test_prefix on each iteration,
-# including the iterator's current value in the prefix.
-
-proc foreach_with_prefix {var list body} {
-    upvar 1 $var myvar
-    foreach myvar $list {
-       with_test_prefix "$var=$myvar" {
-           uplevel 1 $body
-       }
-    }
-}
-
 foreach_with_prefix non_stop {"on" "off"} {
     foreach_with_prefix cond_bp_target {1 0} {
        do_test $non_stop $cond_bp_target
 
   }
 }
 
+# Wrapper for foreach that calls with_test_prefix on each iteration,
+# including the iterator's name and current value in the prefix.
+
+proc foreach_with_prefix {var list body} {
+    upvar 1 $var myvar
+    foreach myvar $list {
+       with_test_prefix "$var=$myvar" {
+           uplevel 1 $body
+       }
+    }
+}
+
 # Run BODY in the context of the caller.  After BODY is run, the variables
 # listed in VARS will be reset to the values they had before BODY was run.
 #