[gcc r12-7049] Empty the base_types vector before (re)populating it

Eric Botcazou ebotcazou@gcc.gnu.org
Fri Feb 4 11:10:18 GMT 2022


https://gcc.gnu.org/g:38948b77dbc16f4c6cf6cff8661bab699b306f03

commit r12-7049-g38948b77dbc16f4c6cf6cff8661bab699b306f03
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Fri Feb 4 12:07:46 2022 +0100

    Empty the base_types vector before (re)populating it
    
    Otherwise Bad Things happen when it is populated several times.
    
    gcc/
            PR debug/104366
            * dwarf2out.cc (dwarf2out_finish): Empty base_types.
            (dwarf2out_early_finish): Likewise.

Diff:
---
 gcc/dwarf2out.cc | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/gcc/dwarf2out.cc b/gcc/dwarf2out.cc
index e60575b1398..d1e8654e4d7 100644
--- a/gcc/dwarf2out.cc
+++ b/gcc/dwarf2out.cc
@@ -32155,6 +32155,7 @@ dwarf2out_finish (const char *filename)
     FOR_EACH_CHILD (die, c, gcc_assert (! c->die_mark));
   }
 #endif
+  base_types.truncate (0);
   for (ctnode = comdat_type_list; ctnode != NULL; ctnode = ctnode->next)
     resolve_addr (ctnode->root_die);
   resolve_addr (comp_unit_die ());
@@ -32999,6 +33000,7 @@ dwarf2out_early_finish (const char *filename)
      location related output removed and some LTO specific changes.
      Some refactoring might make both smaller and easier to match up.  */
 
+  base_types.truncate (0);
   for (ctnode = comdat_type_list; ctnode != NULL; ctnode = ctnode->next)
     mark_base_types (ctnode->root_die);
   mark_base_types (comp_unit_die ());


More information about the Gcc-cvs mailing list