From: Richard Biener Date: Mon, 8 Jan 2018 13:13:48 +0000 (+0000) Subject: re PR lto/83719 (ICE (segfault) in hash_table::elements()) 2018-01-08 Richard Biener PR lto/83719 * dwarf2out.c (output_indirect_strings): Handle empty skeleton_debug_str_hash. (dwarf2out_early_finish): Index strings for -gsplit-dwarf. * gcc.dg/lto/pr83719_0.c: New testcase. From-SVN: r256338 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b176f6ee0c3..0c9d6947d68 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2018-01-08 Richard Biener + + PR lto/83719 + * dwarf2out.c (output_indirect_strings): Handle empty + skeleton_debug_str_hash. + (dwarf2out_early_finish): Index strings for -gsplit-dwarf. + 2018-01-08 Claudiu Zissulescu * config/arc/arc.c (TARGET_TRAMPOLINE_ADJUST_ADDRESS): Delete. diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index ae91c2d750b..a34b294106c 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -27795,8 +27795,9 @@ output_indirect_strings (void) unsigned int offset = 0; unsigned int cur_idx = 0; - skeleton_debug_str_hash->traverse (DW_FORM_strp); + if (skeleton_debug_str_hash) + skeleton_debug_str_hash->traverse (DW_FORM_strp); switch_to_section (debug_str_offsets_section); debug_str_hash->traverse_noresize @@ -30819,6 +30820,12 @@ dwarf2out_early_finish (const char *filename) save_macinfo_strings (); + if (dwarf_split_debug_info) + { + unsigned int index = 0; + debug_str_hash->traverse_noresize (&index); + } + /* Output all of the compilation units. We put the main one last so that the offsets are available to output_pubnames. */ for (limbo_die_node *node = limbo_die_list; node; node = node->next) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 04eecf8c1ad..ccc94d1b2a6 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2018-01-08 Richard Biener + + PR lto/83719 + * gcc.dg/lto/pr83719_0.c: New testcase. + 2018-01-08 Tom de Vries * gcc.dg/graphite/interchange-7.c: Add dg-require-stack-size. diff --git a/gcc/testsuite/gcc.dg/lto/pr83719_0.c b/gcc/testsuite/gcc.dg/lto/pr83719_0.c new file mode 100644 index 00000000000..6d5c16da7da --- /dev/null +++ b/gcc/testsuite/gcc.dg/lto/pr83719_0.c @@ -0,0 +1,4 @@ +/* { dg-lto-do assemble } */ +/* { dg-lto-options { { -flto -g -gsplit-dwarf } } } */ + +/* Empty. */