14#ifndef LLVM_CLANG_ANALYSIS_SCALABLE_ENTITYLINKER_ENTITYLINKER_H
15#define LLVM_CLANG_ANALYSIS_SCALABLE_ENTITYLINKER_ENTITYLINKER_H
18#include "llvm/Support/Error.h"
30 std::set<BuildNamespace> ProcessedTUNamespaces;
37 : Output(
std::move(LUNamespace)) {}
48 llvm::Error
link(std::unique_ptr<TUSummaryEncoding> Summary);
76 std::vector<EntitySummaryEncoding *>
78 const std::map<EntityId, EntityId> &EntityResolutionTable);
84 void patch(
const std::vector<EntitySummaryEncoding *> &PatchTargets,
85 const std::map<EntityId, EntityId> &EntityResolutionTable);
Lightweight opaque handle representing an entity in an EntityIdTable.
Represents the linkage properties of an entity in the program model.
llvm::Error link(std::unique_ptr< TUSummaryEncoding > Summary)
Links a TU summary into a LU summary.
EntityLinker(NestedBuildNamespace LUNamespace)
Constructs an EntityLinker to link TU summaries into a LU summary.
LUSummaryEncoding getOutput() &&
Returns the accumulated LU summary.
Uniquely identifies an entity in a program.
Represents a link unit summary in its serialized encoding.
Represents a hierarchical sequence of build namespaces.
Represents a translation unit summary in its serialized encoding.
Linkage
Describes the different kinds of linkage (C++ [basic.link], C99 6.2.2) that an entity may have.