From cd6f72e1db09f5dc64435c46f77e45b105d88af2 Mon Sep 17 00:00:00 2001 From: Petr Machata Date: Thu, 10 Mar 2011 00:51:43 +0100 Subject: [PATCH] dwarflint: Detect and diagnose empty CU --- dwarflint/check_debug_info.cc | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) 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; -- 2.39.5