clang 23.0.0git
TUSummary.h
Go to the documentation of this file.
1//===- TUSummary.h ----------------------------------------------*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9#ifndef LLVM_CLANG_ANALYSIS_SCALABLE_TUSUMMARY_TUSUMMARY_H
10#define LLVM_CLANG_ANALYSIS_SCALABLE_TUSUMMARY_TUSUMMARY_H
11
17#include <map>
18#include <memory>
19
20namespace clang::ssaf {
21
22/// Data extracted for a given translation unit and for a given set of analyses.
23class TUSummary {
24 /// Identifies the translation unit.
25 BuildNamespace TUNamespace;
26 EntityIdTable IdTable;
27
28 std::map<SummaryName, std::map<EntityId, std::unique_ptr<EntitySummary>>>
29 Data;
30
31public:
32 TUSummary(BuildNamespace TUNamespace) : TUNamespace(std::move(TUNamespace)) {}
33};
34
35} // namespace clang::ssaf
36
37#endif // LLVM_CLANG_ANALYSIS_SCALABLE_TUSUMMARY_TUSUMMARY_H
Represents a single namespace in the build process.
Manages entity name interning and provides efficient EntityId handles.
TUSummary(BuildNamespace TUNamespace)
Definition TUSummary.h:32