]> git.ipfire.org Git - thirdparty/elfutils.git/commitdiff
dwarflint: Detect and diagnose empty CU
authorPetr Machata <pmachata@redhat.com>
Wed, 9 Mar 2011 23:51:43 +0000 (00:51 +0100)
committerPetr Machata <pmachata@redhat.com>
Wed, 9 Mar 2011 23:51:43 +0000 (00:51 +0100)
dwarflint/check_debug_info.cc

index c05e438a544a6ddfec2156a60e3264785e3abc0f..f413ff856288d67d5655bfced0d55e48ba532f19 100644 (file)
@@ -1021,14 +1021,18 @@ check_debug_info::check_cu_structural (struct read_ctx *ctx,
   WIPE (local_die_refs);
 
   cu->cudie_offset = read_ctx_get_offset (ctx) + cu->head->offset;
-  if (read_die_chain (ver, _m_file, ctx, cu, &abbrevs, strings,
-                     &local_die_refs, strings_coverage,
-                     (reloc != NULL && reloc->size > 0) ? reloc : NULL,
-                     &_m_cov, &_m_need_ranges, 0) < 0)
+  int st = read_die_chain (ver, _m_file, ctx, cu, &abbrevs, strings,
+                          &local_die_refs, strings_coverage,
+                          (reloc != NULL && reloc->size > 0) ? reloc : NULL,
+                          &_m_cov, &_m_need_ranges, 0);
+  if (st < 0)
     {
       _m_abbr_skip.push_back (abbrevs.offset);
       retval = false;
     }
+  else if (st == 0)
+    wr_error (cu->head->where)
+      << "CU contains no DIEs." << std::endl;
   else if (!check_die_references (cu, &local_die_refs))
     retval = false;