68 lines
2.7 KiB
Plaintext
68 lines
2.7 KiB
Plaintext
2.1 version
|
|
===========
|
|
|
|
This occurred in libabigail 2.1. The IR doesn't contain no-op
|
|
qualified types anymore. These were the ancient way to represent
|
|
qualified type that were edited by libabigail to avoid spurious
|
|
diagnostics. E.g, const references or const void type. In those
|
|
cases, we were replacing these by qualified types that were no-ops.
|
|
Those no-ops qualified types further needed to be stripped off in the
|
|
diff IR to avoid emitting spurious changes. It turned out stripping
|
|
out those no-op qualified types was causing some difficulties in the
|
|
algorithms that propagate type diff node categorization.
|
|
|
|
For instance, variable diff type node would have the categorization of
|
|
its diff->type_diff() be different from what we could see from the
|
|
change observed between its diff->first_subject()->get_type() and
|
|
diff->second_subject()->get_type(). This is because diff->type_diff()
|
|
strips the no-op qualified types to create a new diff IR node, whereas
|
|
looking at the difference between diff->first_subject->get_type() and
|
|
diff->second_subject()->get_type() gives a different perspective.
|
|
|
|
So looking at the "changes" carried by 'diff' could yield a result
|
|
suggesting that there was a change to be diagnosed, carried by the
|
|
difference between diff->first_subject()->get_type() and
|
|
diff->second_subject()->get_type() -- a difference between two no-ops
|
|
qualified types -- whereas actually looking at diff->type_diff() (that
|
|
should be equivalent) yields a different information because it's
|
|
stripped off of the no-op qualified type.
|
|
|
|
Just removing the no-op qualified types removed all those issues
|
|
altogether. So in concrete terms, when we see a const reference, it's
|
|
replaced by a reference (because a reference is always const) and
|
|
when we see a const void, it's replaced by void. As simple as that.
|
|
|
|
But then the emitted ABIXML won't carry any no-op qualified type
|
|
anymore. Older versions of ABIXML might still carry those, and so
|
|
abidiff-ing those against their original binary might yield some
|
|
spurious diagnostics. Hence the minor version bump.
|
|
|
|
relevant commit:
|
|
----------------
|
|
commit 8a4f72005bc96fecf63414784cf94857eddbd124
|
|
Author: Dodji Seketeli <dodji@redhat.com>
|
|
Date: Thu Nov 4 10:59:32 2021 +0100
|
|
|
|
Bug 28450 - Fix cloned member function handling in DWARF
|
|
2.0 version
|
|
===========
|
|
|
|
This occured in libabigail 2.0. The interpretation of
|
|
DW_AT_bit_offset (DWARF 5) changed so the value of the
|
|
'layout-offset-in-bits' property of the 'data-member' element might
|
|
now have changed in an incompatible way.
|
|
|
|
relevant commit:
|
|
----------------
|
|
commit 23046152e0843bc2f141e37dcce047305c3f4379
|
|
Author: Dodji Seketeli <dodji@redhat.com>
|
|
Date: Thu Oct 22 16:04:08 2020 +0200
|
|
|
|
Bump ABIXML format version to 2.0
|
|
|
|
|
|
1.0 version
|
|
===========
|
|
|
|
This was the initial version of abixml.
|