HomePhabricator

[clangd] IncludeCleaner as a library: Find all references to symbols in the file

Authored by kbobyrev on Aug 18 2021, 1:08 AM.

Description

[clangd] IncludeCleaner as a library: Find all references to symbols in the file

This is the first patch in an ongoing attempt of Include Cleaner: unused/missing
headere diagnostics, an IWYU-like functionality implementation for clangd. The
work is split into (mostly) distinct and parallelizable pieces:

  • Finding all referenced locations (this patch).
  • Finding all referenced locations of macros.
  • Building IncludeGraph and marking headers as unused, used and directly used.
  • Making use of the introduced library and add an option to use in clangd.

  • Adding support for standard library headers (possibly through mapping genfiles).

Based on https://reviews.llvm.org/D100540.

Reviewed By: sammccall

Differential Revision: https://reviews.llvm.org/D105426