DWARF reading: process primitive types

Add support for DWARF entries tagged as `DW_TAG_base_type`. All
primitive types are required to have the name in attribute `DW_AT_name`.
A lot of other DWARF types have `DW_AT_name`, so move this code into a
separate function.

Also, primitive types should have a byte or a bit size and an encoding
and we should fail if the encoding has an unexpected value.

PiperOrigin-RevId: 493408968
Change-Id: Ia4d27dee57ca06c9776f08b3677c45797c03d3fe
1 file changed
tree: 9e365b6a81dfca168b1232daf67bc936fee93bdd
  1. doc/
  2. fuzz/
  3. testdata/
  4. abigail_reader.cc
  5. abigail_reader.h
  6. btf_reader.cc
  7. btf_reader.h
  8. catch.cc
  9. comparison.cc
  10. comparison.h
  11. CONTRIBUTING.md
  12. dwarf.cc
  13. dwarf.h
  14. dwarf_processor.cc
  15. dwarf_processor.h
  16. elf_loader.cc
  17. elf_loader.h
  18. elf_reader.cc
  19. elf_reader.h
  20. equality.h
  21. error.h
  22. error_test.cc
  23. file_descriptor.cc
  24. file_descriptor.h
  25. LICENSE
  26. METADATA
  27. MODULE_LICENSE_LLVM
  28. naming.cc
  29. naming.h
  30. order.h
  31. order_test.cc
  32. OWNERS
  33. post_processing.cc
  34. post_processing.h
  35. proto_writer.h
  36. README.md
  37. reporting.cc
  38. reporting.h
  39. scc.h
  40. scc_test.cc
  41. stg.cc
  42. stg.h
  43. stg.proto
  44. stgdiff.cc
  45. stgdiff_test.cc
  46. stginfo.cc
README.md

Symbol-Type Graph (STG)

The STG (symbol-type graph) is an ABI representation and this project contains tools for the creation and comparison of such representations. At present parsers exist for libabigail's ABI XML (C types only) and BTF. The ABI diff tool, stgdiff, supports multiple reporting options. This software currently depends on libabigail for ELF symbol functionality, on libxml2 for XML parsing and on Linux UAPI headers for BTF types.

How to build the project

TBD

Contributions

See CONTRIBUTING.md for details.