From: Petr Machata Date: Wed, 9 Mar 2011 23:51:43 +0000 (+0100) Subject: dwarflint: Detect and diagnose empty CU X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=cd6f72e1db09f5dc64435c46f77e45b105d88af2;p=thirdparty%2Felfutils.git dwarflint: Detect and diagnose empty CU --- diff --git a/dwarflint/check_debug_info.cc b/dwarflint/check_debug_info.cc index c05e438a5..f413ff856 100644 --- a/dwarflint/check_debug_info.cc +++ b/dwarflint/check_debug_info.cc @@ -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;