Address review comments for the previous series
[deliverable/binutils-gdb.git] / gdb / inline-frame.c
index 50f492a36f7dec3829864ef61af30f56dc3ba6d6..b6154cdcc595ec2a13831b7fa255a8eee7a27b02 100644 (file)
@@ -1,6 +1,6 @@
 /* Inline frame unwinder for GDB.
 
-   Copyright (C) 2008-2014 Free Software Foundation, Inc.
+   Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -28,8 +28,6 @@
 #include "vec.h"
 #include "frame.h"
 
-#include "gdb_assert.h"
-
 /* We need to save a few variables for every thread stopped at the
    virtual call site of an inlined function.  If there was always a
    "struct thread_info", we could hang it off that; in the mean time,
@@ -227,6 +225,8 @@ inline_frame_sniffer (const struct frame_unwind *self,
     {
       if (block_inlined_p (cur_block))
        depth++;
+      else if (BLOCK_FUNCTION (cur_block) != NULL)
+       break;
 
       cur_block = BLOCK_SUPERBLOCK (cur_block);
     }
@@ -283,7 +283,7 @@ block_starting_point_at (CORE_ADDR pc, const struct block *block)
   if (BLOCKVECTOR_MAP (bv) == NULL)
     return 0;
 
-  new_block = addrmap_find (BLOCKVECTOR_MAP (bv), pc - 1);
+  new_block = (struct block *) addrmap_find (BLOCKVECTOR_MAP (bv), pc - 1);
   if (new_block == NULL)
     return 1;
 
@@ -333,6 +333,9 @@ skip_inline_frames (ptid_t ptid)
              else
                break;
            }
+         else if (BLOCK_FUNCTION (cur_block) != NULL)
+           break;
+
          cur_block = BLOCK_SUPERBLOCK (cur_block);
        }
     }
This page took 0.02468 seconds and 4 git commands to generate.