mirror of
git://sourceware.org/git/libabigail.git
synced 2024-12-21 01:09:59 +00:00
93fea0667e
This fixes Bug 20329 - DW_TAG_const_type with no DW_AT_type not recognized as "const void". It appears that GCC sometimes emits "const void" types by emitting a const type DIE with no type attribute. The DWARF reader didn't recognize that construct as a qualified void type. This patch teaches the DWARF reader to recognize that construct. It also appears that "const void" and "void" are equivalent and can be emitted interchangeably by compilers (Intel and GCC) in their debug info. That can lead to spurious ABI change reports saying that a type "const void" was changed into a "void" type. This patch transforms an occurrence of "const void" type into a "void" type in the internal representation when reading DWARF. This does away with the spurious change that appears when comparing selected binaries emitted with the intel against binaries emitted with GCC. * include/abg-ir.h (environment::is_void_type): Declare new member function. * src/abg-ir.cc (environment::is_void_type): Define new member function. * src/abg-dwarf-reader.cc (maybe_strip_qualification): Strip const qualifier from const void. * tests/data/test-diff-filter/test34-libjemalloc.so.2-gcc-6.1.0: New test input. * tests/data/test-diff-filter/test34-libjemalloc.so.2-intel-16.0.3: Likewise. * tests/data/test-diff-filter/test34-report-0.txt: New reference output. * tests/data/Makefile.am: Add the new files above to the source distribution. * tests/test-diff-filter.cc (in_out_specs): Compare the two new binaries above. * tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt: Adjust. * tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt: Adjust. * tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt: Adjust. * tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt: Adjust. * tests/data/test-read-dwarf/test1.abi: Adjust. * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Adjust. * tests/data/test-read-dwarf/test11-pr18828.so.abi: Adjust. * tests/data/test-read-dwarf/test12-pr18844.so.abi: Adjust. * tests/data/test-read-dwarf/test13-pr18894.so.abi: Adjust. * tests/data/test-read-dwarf/test14-pr18893.so.abi: Adjust. * tests/data/test-read-dwarf/test15-pr18892.so.abi: Adjust. * tests/data/test-read-dwarf/test16-pr18904.so.abi: Adjust. * tests/data/test-read-dwarf/test17-pr19027.so.abi: Adjust. * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: Adjust. * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: Adjust. * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi: Adjust. * tests/data/test-read-dwarf/test21-pr19092.so.abi: Adjust. * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: Adjust. * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Adjust. Signed-off-by: Dodji Seketeli <dodji@redhat.com> |
||
---|---|---|
.. | ||
data | ||
Makefile.am | ||
print-diff-tree.cc | ||
runtestcanonicalizetypes.sh.in | ||
runtestdefaultsupprs.py.in | ||
runtestfedabipkgdiff.py.in | ||
test-abicompat.cc | ||
test-abidiff-exit.cc | ||
test-abidiff.cc | ||
test-alt-dwarf-file.cc | ||
test-core-diff.cc | ||
test-diff2.cc | ||
test-diff-dwarf-abixml.cc | ||
test-diff-dwarf.cc | ||
test-diff-filter.cc | ||
test-diff-pkg.cc | ||
test-diff-suppr.cc | ||
test-dot.cc | ||
test-ir-walker.cc | ||
test-lookup-syms.cc | ||
test-read-dwarf.cc | ||
test-read-write.cc | ||
test-svg.cc | ||
test-types-stability.cc | ||
test-utils.cc | ||
test-utils.h | ||
test-valgrind-suppressions.supp | ||
test-write-read-archive.cc | ||
update-test-read-dwarf-output.py |