12.1 version 2=========== 3 4This occurred in libabigail 2.1. The IR doesn't contain no-op 5qualified types anymore. These were the ancient way to represent 6qualified type that were edited by libabigail to avoid spurious 7diagnostics. E.g, const references or const void type. In those 8cases, we were replacing these by qualified types that were no-ops. 9Those no-ops qualified types further needed to be stripped off in the 10diff IR to avoid emitting spurious changes. It turned out stripping 11out those no-op qualified types was causing some difficulties in the 12algorithms that propagate type diff node categorization. 13 14For instance, variable diff type node would have the categorization of 15its diff->type_diff() be different from what we could see from the 16change observed between its diff->first_subject()->get_type() and 17diff->second_subject()->get_type(). This is because diff->type_diff() 18strips the no-op qualified types to create a new diff IR node, whereas 19looking at the difference between diff->first_subject->get_type() and 20diff->second_subject()->get_type() gives a different perspective. 21 22So looking at the "changes" carried by 'diff' could yield a result 23suggesting that there was a change to be diagnosed, carried by the 24difference between diff->first_subject()->get_type() and 25diff->second_subject()->get_type() -- a difference between two no-ops 26qualified types -- whereas actually looking at diff->type_diff() (that 27should be equivalent) yields a different information because it's 28stripped off of the no-op qualified type. 29 30Just removing the no-op qualified types removed all those issues 31altogether. So in concrete terms, when we see a const reference, it's 32replaced by a reference (because a reference is always const) and 33when we see a const void, it's replaced by void. As simple as that. 34 35But then the emitted ABIXML won't carry any no-op qualified type 36anymore. Older versions of ABIXML might still carry those, and so 37abidiff-ing those against their original binary might yield some 38spurious diagnostics. Hence the minor version bump. 39 40relevant commit: 41---------------- 42commit 8a4f72005bc96fecf63414784cf94857eddbd124 43Author: Dodji Seketeli <dodji@redhat.com> 44Date: Thu Nov 4 10:59:32 2021 +0100 45 46 Bug 28450 - Fix cloned member function handling in DWARF 472.0 version 48=========== 49 50This occured in libabigail 2.0. The interpretation of 51DW_AT_bit_offset (DWARF 5) changed so the value of the 52'layout-offset-in-bits' property of the 'data-member' element might 53now have changed in an incompatible way. 54 55relevant commit: 56---------------- 57commit 23046152e0843bc2f141e37dcce047305c3f4379 58Author: Dodji Seketeli <dodji@redhat.com> 59Date: Thu Oct 22 16:04:08 2020 +0200 60 61 Bump ABIXML format version to 2.0 62 63 641.0 version 65=========== 66 67This was the initial version of abixml. 68