14#include "llvm/Support/Error.h"
15#include "llvm/Support/JSON.h"
19using Array = llvm::json::Array;
20using Object = llvm::json::Object;
27 Array UnsafeBuffersData;
36 const Array *UnsafeBuffersData =
39 if (!UnsafeBuffersData)
43 EntityPointerLevelSet EPLs;
45 for (
const auto &EltData : *UnsafeBuffersData) {
50 return EPL.takeError();
53 return std::make_unique<UnsafeBufferUsageEntitySummary>(
65 UnsafeBufferUsageJSONFormatInfo()
66 : JSONFormat::FormatInfo(UnsafeBufferUsageEntitySummary::summaryName(),
71static llvm::Registry<JSONFormat::FormatInfo>::Add<
72 UnsafeBufferUsageJSONFormatInfo>
75 "JSON Format info for UnsafeBufferUsageEntitySummary");
Manages entity name interning and provides efficient EntityId handles.
Base class for analysis-specific summary data.
An UnsafeBufferUsageEntitySummary contains a set of EntityPointerLevels extracted from unsafe buffer ...
static constexpr llvm::StringLiteral Name
llvm::json::Value entityPointerLevelToJSON(const EntityPointerLevel &EPL, JSONFormat::EntityIdToJSONFn EntityId2JSON)
llvm::Error makeSawButExpectedError(const JSONTy &Saw, llvm::StringRef Expected, const Ts &...ExpectedArgs)
llvm::json::Object Object
Expected< EntityPointerLevel > entityPointerLevelFromJSON(const llvm::json::Value &EPLData, JSONFormat::EntityIdFromJSONFn EntityIdFromJSON)
volatile int UnsafeBufferUsageJSONFormatAnchorSource
llvm::iterator_range< EntityPointerLevelSet::const_iterator > getUnsafeBuffers(const UnsafeBufferUsageEntitySummary &)
UnsafeBufferUsageEntitySummary buildUnsafeBufferUsageEntitySummary(EntityPointerLevelSet)
Top level wrappers for InstallAPI frontend operations.