mirror of
git://sourceware.org/git/libabigail.git
synced 2024-12-17 07:24:34 +00:00
5ac010cc9b
Clang doesn't always emit the DW_AT_external property that flags a decl as being external. In those cases, the DWARF reader just drops the variable on the floor as it considers it as being "non-exported". This patch considers that a variable decl that is at named namespace scope is essentially "external". Then if the variable has an ELF symbol associated to it, then an IR node will be created for it. The other changes are just needed adaptations due to the core change. * src/abg-dwarf-reader.cc (die_is_effectively_public_decl): Define new static function. (die_flag_attribute, die_is_public_decl): Adjust const-ness. (build_ir_node_from_die): When building an IR for a variable, consider the variable as being external if the variable is at namespace scope, even if its DIE doesn't have the DW_AT_external attribute. * tests/data/test-read-dwarf/PR28584/PR28584-smv.cc: New source code for a new clang-built binary. * tests/data/test-read-dwarf/PR28584/PR28584-smv.clang.o: New clang-built input binary for testing purposes. * tests/data/test-read-dwarf/PR28584/PR28584-smv.clang.o.abi: The reference output abixml. * tests/data/Makefile.am: Add the new test material above to source distribution. * tests/test-read-dwarf.cc (in_out_specs): Add the new test input to this test harness. * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Adjust. * tests/data/test-read-dwarf/test-libandroid.so.abi: Likewise. Signed-off-by: Dodji Seketeli <dodji@redhat.com> |
||
---|---|---|
.. | ||
test-abicompat | ||
test-abidiff | ||
test-abidiff-exit | ||
test-alt-dwarf-file | ||
test-annotate | ||
test-core-diff | ||
test-default-supprs | ||
test-diff-dwarf | ||
test-diff-dwarf-abixml | ||
test-diff-filter | ||
test-diff-pkg | ||
test-diff-suppr | ||
test-fedabipkgdiff | ||
test-ini | ||
test-kmi-whitelist | ||
test-lookup-syms | ||
test-read-dwarf | ||
test-read-write | ||
test-symtab | ||
test-types-stability | ||
test-write-read-archive | ||
Makefile.am |