ir: Add fn types to type lookup maps

This is a fix to an inconsistency I stumbled upon while looking at
something else.

So, function types were not being added to the type lookup maps.
Fixed this.

	* src/abg-ir.cc (maybe_update_types_lookup_map): Handle function
	types.
	(translation_unit::bind_function_type_life_time): Update types
	lookup map.

Signed-off-by: Dodji Seketeli <dodji@redhat.com>
This commit is contained in:
Dodji Seketeli 2023-07-24 12:08:32 +02:00
parent 2a8913fdd9
commit e54349b096
1 changed files with 6 additions and 0 deletions

View File

@ -1479,6 +1479,8 @@ translation_unit::bind_function_type_life_time(function_type_sptr ftype) const
ABG_ASSERT(existing_tu == this);
else
ftype->set_translation_unit(const_cast<translation_unit*>(this));
maybe_update_types_lookup_map(ftype);
}
/// This implements the ir_traversable_base::traverse virtual
@ -14198,6 +14200,8 @@ maybe_update_types_lookup_map(const decl_base_sptr& decl)
maybe_update_types_lookup_map(array_type);
else if (array_type_def::subrange_sptr subrange_type = is_subrange_type(decl))
maybe_update_types_lookup_map(subrange_type);
else if (function_type_sptr fn_type = is_function_type(decl))
maybe_update_types_lookup_map(fn_type);
else
ABG_ASSERT_NOT_REACHED;
}
@ -14218,6 +14222,8 @@ maybe_update_types_lookup_map(const type_base_sptr& type)
{
if (decl_base_sptr decl = get_type_declaration(type))
maybe_update_types_lookup_map(decl);
else if (function_type_sptr fn_type = is_function_type(type))
maybe_update_types_lookup_map(fn_type);
else
ABG_ASSERT_NOT_REACHED;
}