enum change_kind k = ir::NO_CHANGE_KIND;
equals(*d.first_reference(), *d.second_reference(), &k);
- if ((k & LOCAL_CHANGE_KIND) && !(k & SUBTYPE_CHANGE_KIND))
+ if ((k & ALL_LOCAL_CHANGES_MASK) && !(k & SUBTYPE_CHANGE_KIND))
report_local_reference_type_changes(d, out, indent);
if (k & SUBTYPE_CHANGE_KIND)
{
if (!types_have_similar_structure(l.get_underlying_type().get(),
r.get_underlying_type().get()))
- *k |= LOCAL_CHANGE_KIND;
+ *k |= LOCAL_CHANGE_KIND | LOCAL_TYPE_CHANGE_KIND;
else
*k |= SUBTYPE_CHANGE_KIND;
}
if (k)
{
if (!l.decl_base::operator==(r))
- *k |= LOCAL_NON_TYPE_CHANGE_KIND;
+ *k |= LOCAL_CHANGE_KIND | LOCAL_NON_TYPE_CHANGE_KIND;
if (!l.type_base::operator==(r))
- *k |= LOCAL_TYPE_CHANGE_KIND;
- *k |= LOCAL_CHANGE_KIND;
+ *k |= LOCAL_CHANGE_KIND | LOCAL_TYPE_CHANGE_KIND;
}
else
{
if (k)
{
if (!l.decl_base::operator==(r))
- *k |= LOCAL_NON_TYPE_CHANGE_KIND;
+ *k |= LOCAL_CHANGE_KIND | LOCAL_NON_TYPE_CHANGE_KIND;
if (!l.type_base::operator==(r))
- *k |= LOCAL_TYPE_CHANGE_KIND;
- *k |= LOCAL_CHANGE_KIND;
+ *k |= LOCAL_CHANGE_KIND | LOCAL_TYPE_CHANGE_KIND;
}
else
return false;
if (k)
{
if (l.get_index() != r.get_index())
- *k |= LOCAL_NON_TYPE_CHANGE_KIND;
+ *k |= LOCAL_CHANGE_KIND | LOCAL_NON_TYPE_CHANGE_KIND;
if (l.get_variadic_marker() != r.get_variadic_marker()
|| !!l.get_type() != !!r.get_type())
- *k |= LOCAL_TYPE_CHANGE_KIND;
- *k |= LOCAL_CHANGE_KIND;
+ *k |= LOCAL_CHANGE_KIND | LOCAL_TYPE_CHANGE_KIND;
}
else
return false;
{
if (!types_have_similar_structure((*b0)->get_base_class().get(),
(*b1)->get_base_class().get()))
- *k |= LOCAL_CHANGE_KIND;
+ *k |= LOCAL_CHANGE_KIND | LOCAL_TYPE_CHANGE_KIND;
else
*k |= SUBTYPE_CHANGE_KIND;
break;
{
result = false;
if (k)
- *k |= LOCAL_NON_TYPE_CHANGE_KIND | LOCAL_NON_TYPE_CHANGE_KIND;
+ *k |= LOCAL_CHANGE_KIND | LOCAL_NON_TYPE_CHANGE_KIND;
RETURN(result);
}