From 43fb4c8056854b37dfcddf4b48886130628e8c0a Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Wed, 13 Mar 2019 21:22:15 +0100 Subject: [PATCH] re PR debug/89498 (ICE in AT_loc_list, at dwarf2out.c:4871) PR debug/89498 * dwarf2out.c (size_of_die): For dw_val_class_view_list always use DWARF_OFFSET_SIZE. (value_format): For dw_val_class_view_list never use DW_FORM_loclistx. From-SVN: r269661 --- gcc/ChangeLog | 7 +++++++ gcc/dwarf2out.c | 6 ++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index cda44b8e0ff..7c5bda1d288 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2019-03-13 Jakub Jelinek + + PR debug/89498 + * dwarf2out.c (size_of_die): For dw_val_class_view_list always use + DWARF_OFFSET_SIZE. + (value_format): For dw_val_class_view_list never use DW_FORM_loclistx. + 2019-03-13 Martin Sebor PR tree-optimization/89662 diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index 83055556814..c9f1e31014c 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -9369,7 +9369,6 @@ size_of_die (dw_die_ref die) } break; case dw_val_class_loc_list: - case dw_val_class_view_list: if (dwarf_split_debug_info && dwarf_version >= 5) { gcc_assert (AT_loc_list (a)->num_assigned); @@ -9378,6 +9377,9 @@ size_of_die (dw_die_ref die) else size += DWARF_OFFSET_SIZE; break; + case dw_val_class_view_list: + size += DWARF_OFFSET_SIZE; + break; case dw_val_class_range_list: if (value_format (a) == DW_FORM_rnglistx) { @@ -9751,12 +9753,12 @@ value_format (dw_attr_node *a) gcc_unreachable (); } case dw_val_class_loc_list: - case dw_val_class_view_list: if (dwarf_split_debug_info && dwarf_version >= 5 && AT_loc_list (a)->num_assigned) return DW_FORM_loclistx; /* FALLTHRU */ + case dw_val_class_view_list: case dw_val_class_range_list: /* For range lists in DWARF 5, use DW_FORM_rnglistx from .debug_info.dwo but in .debug_info use DW_FORM_sec_offset, which is shorter if we -- 2.30.2