Move Removed, Added and Compare out of Type

Various things ended up in the `Type` type (the graph node base class)
as there was no better home for them at the time (and no `Graph` type
in particular).

This includes:

* the top-level comparison functions `Removed`, `Added` and `Compare`
* the `GetTypes` access function
* the `GetType` access function
* a reference to the node array

The comparison functions have no dependency on `Type` other than access
to the `Equals` virtual member function. This commit moves them out
and makes `Equals` public instead of protected.

Later changes will deal with the node array and its access functions.

PiperOrigin-RevId: 435316635
Change-Id: I0e2d79cab9580d40a5a23c39956a7b1e81d58323
3 files changed
tree: 88be91f0c39464203a9604096cf3cf105b26a407
  1. fuzz/
  2. abigail_reader.cc
  3. abigail_reader.h
  4. btf_reader.cc
  5. btf_reader.h
  6. btfinfo.cc
  7. CONTRIBUTING.md
  8. crc.h
  9. error.h
  10. error_test.cc
  11. id.h
  12. LICENSE
  13. METADATA
  14. MODULE_LICENSE_LLVM
  15. order.h
  16. order_test.cc
  17. OWNERS
  18. README.md
  19. scc.h
  20. scc_test.cc
  21. stg.cc
  22. stg.h
  23. stgdiff.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.