varobj/Ada: Missing children for interface-wide tagged types
[deliverable/binutils-gdb.git] / gdb / dwarf2-frame.c
index f185ca6e8c19b7ab829447eace006b34322bd79f..1907128600679197f8b52ae0eaa2e5412be1a3a2 100644 (file)
@@ -1,6 +1,6 @@
 /* Frame unwinder for frames with DWARF Call Frame Information.
 
-   Copyright (C) 2003-2013 Free Software Foundation, Inc.
+   Copyright (C) 2003-2014 Free Software Foundation, Inc.
 
    Contributed by Mark Kettenis.
 
@@ -1245,10 +1245,6 @@ incomplete CFI data; unspecified registers (e.g., %s) at %s"),
   if (fs->retaddr_column < fs->regs.num_regs
       && fs->regs.reg[fs->retaddr_column].how == DWARF2_FRAME_REG_UNDEFINED)
     cache->undefined_retaddr = 1;
-  else if (fs->retaddr_column >= fs->regs.num_regs
-         || (fs->regs.reg[fs->retaddr_column].how
-             == DWARF2_FRAME_REG_UNSPECIFIED))
-    cache->undefined_retaddr = 1;
 
   do_cleanups (old_chain);
   discard_cleanups (reset_cache_cleanup);
@@ -1279,12 +1275,11 @@ dwarf2_frame_this_id (struct frame_info *this_frame, void **this_cache,
     dwarf2_frame_cache (this_frame, this_cache);
 
   if (cache->unavailable_retaddr)
+    (*this_id) = frame_id_build_unavailable_stack (get_frame_func (this_frame));
+  else if (cache->undefined_retaddr)
     return;
-
-  if (cache->undefined_retaddr)
-    return;
-
-  (*this_id) = frame_id_build (cache->cfa, get_frame_func (this_frame));
+  else
+    (*this_id) = frame_id_build (cache->cfa, get_frame_func (this_frame));
 }
 
 static struct value *
This page took 0.023844 seconds and 4 git commands to generate.