From: Jan Hubicka Date: Sat, 1 Aug 2020 15:57:08 +0000 (+0200) Subject: Verify symtab order X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=87c284dd2758fbda1180dd3c35f8189f003b5aad;p=thirdparty%2Fgcc.git Verify symtab order * symtab.c (symtab_node::verify_base): Verify order. (symtab_node::verify_symtab_nodes): Verify order. --- diff --git a/gcc/symtab.c b/gcc/symtab.c index 0e852d4c24d4..d7dfbb676df2 100644 --- a/gcc/symtab.c +++ b/gcc/symtab.c @@ -1085,6 +1085,11 @@ symtab_node::verify_base (void) error ("node has unknown type"); error_found = true; } + if (order < 0 || order >= symtab->order) + { + error ("node has invalid order %i", order); + error_found = true; + } if (symtab->state != LTO_STREAMING) { @@ -1326,6 +1331,14 @@ symtab_node::verify_symtab_nodes (void) { symtab_node *node; hash_map comdat_head_map (251); + asm_node *anode; + + for (anode = symtab->first_asm_symbol (); anode; anode = anode->next) + if (anode->order < 0 || anode->order >= symtab->order) + { + error ("invalid order in asm node %i", anode->order); + internal_error ("symtab_node::verify failed"); + } FOR_EACH_SYMBOL (node) {