14#ifndef LLVM_CLANG_SCALABLESTATICANALYSIS_CORE_ENTITYLINKER_ENTITYLINKER_H
15#define LLVM_CLANG_SCALABLESTATICANALYSIS_CORE_ENTITYLINKER_ENTITYLINKER_H
18#include "llvm/Support/Error.h"
19#include "llvm/TargetParser/Triple.h"
31 std::set<BuildNamespace> ProcessedTUNamespaces;
40 : Output(
std::move(TargetTriple),
std::move(LUNamespace)) {}
51 llvm::Error
link(std::unique_ptr<TUSummaryEncoding> Summary);
80 std::vector<EntitySummaryEncoding *>
82 const std::map<EntityId, EntityId> &EntityResolutionTable);
89 llvm::Error patch(
const std::vector<EntitySummaryEncoding *> &PatchTargets,
90 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.
EntityLinker(llvm::Triple TargetTriple, NestedBuildNamespace LUNamespace)
Constructs an EntityLinker to link TU summaries into a LU summary.
llvm::Error link(std::unique_ptr< TUSummaryEncoding > Summary)
Links a TU summary into a LU summary.
LUSummaryEncoding takeOutput() &&
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.