* infrun.c (wait_for_inferior): Enable code which assumes that if
authorJim Kingdon <jkingdon@engr.sgi.com>
Thu, 30 Dec 1993 15:27:52 +0000 (15:27 +0000)
committerJim Kingdon <jkingdon@engr.sgi.com>
Thu, 30 Dec 1993 15:27:52 +0000 (15:27 +0000)
we jump into the prologue from another function, then it was a
subroutine call.  #if 0 AT_FUNCTION_START; the above code should
take care of this case.

gdb/ChangeLog
gdb/infrun.c

index e568f8b7db188a7a056838e54a727c5129538778..9ff71f91b8e0032e82bb443ac1c0e3d4e4563874 100644 (file)
@@ -1,3 +1,10 @@
+Thu Dec 30 10:16:54 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
+
+       * infrun.c (wait_for_inferior): Enable code which assumes that if
+       we jump into the prologue from another function, then it was a
+       subroutine call.  #if 0 AT_FUNCTION_START; the above code should
+       take care of this case.
+
 Wed Dec 29 12:32:08 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
 
        * valprint.c (val_print_string): Change chunksize from 200
index 0c2153b2acbf1728ee830f859c1863fa2c6cdb9d..f8720c3e14b297225093d97d435dc1d6ab44a6b1 100644 (file)
@@ -1005,20 +1005,25 @@ switch_thread:
                 like a subroutine call. */
              ! stop_func_start
 
-             /* If we do a call, we will be at the start of a function.  */
+             /* If we do a call, we will be at the start of a function...  */
              || stop_pc == stop_func_start
+#if 0
+             /* Should be taken care of by the stop_pc < prologue_pc check
+                below.  Also, on irix5 where this checks for stop_pc
+                equal to stop_func_start plus 12, it would seem to be
+                wrong for a function with a 4 byte prologue, and an 8 byte
+                call; a "return" could end up at stop_func_start+12.  */
+
              || AT_FUNCTION_START (stop_pc, stop_func_name, stop_func_start)
+#endif
+
+             /* ...except on the Alpha with -O (and also Irix 5 and
+                perhaps others), in which we might call the address
+                after the load of gp.  Since prologues don't contain
+                calls, we can't return to within one, and we don't
+                jump back into them, so this check is OK.  */
 
-#if 0
-             /* Not conservative enough for 4.11.  FIXME: enable this
-                after 4.11.  */
-             /* Except on the Alpha with -O (and perhaps other machines
-                with similar calling conventions), in which we might
-                call the address after the load of gp.  Since prologues
-                don't contain calls, we can't return to within one, and
-                we don't jump back into them, so this check is OK.  */
              || stop_pc < prologue_pc
-#endif
 
              /* If we end up in certain places, it means we did a subroutine
                 call.  I'm not completely sure this is necessary now that we