clang
23.0.0git
include
clang
ScalableStaticAnalysisFramework
Core
TUSummary
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_SCALABLESTATICANALYSISFRAMEWORK_CORE_TUSUMMARY_TUSUMMARY_H
10
#define LLVM_CLANG_SCALABLESTATICANALYSISFRAMEWORK_CORE_TUSUMMARY_TUSUMMARY_H
11
12
#include "
clang/ScalableStaticAnalysisFramework/Core/Model/BuildNamespace.h
"
13
#include "
clang/ScalableStaticAnalysisFramework/Core/Model/EntityId.h
"
14
#include "
clang/ScalableStaticAnalysisFramework/Core/Model/EntityIdTable.h
"
15
#include "
clang/ScalableStaticAnalysisFramework/Core/Model/EntityLinkage.h
"
16
#include "
clang/ScalableStaticAnalysisFramework/Core/Model/SummaryName.h
"
17
#include "
clang/ScalableStaticAnalysisFramework/Core/TUSummary/EntitySummary.h
"
18
#include "llvm/TargetParser/Triple.h"
19
#include <map>
20
#include <memory>
21
22
namespace
clang::ssaf
{
23
24
/// Data extracted for a given translation unit and for a given set of analyses.
25
class
TUSummary
{
26
/// Target triple of the translation unit.
27
llvm::Triple TargetTriple;
28
29
/// Identifies the translation unit.
30
BuildNamespace
TUNamespace;
31
32
EntityIdTable
IdTable;
33
34
std::map<EntityId, EntityLinkage> LinkageTable;
35
36
std::map<SummaryName, std::map<EntityId, std::unique_ptr<EntitySummary>>>
37
Data;
38
39
public
:
40
TUSummary
(llvm::Triple TargetTriple,
BuildNamespace
TUNamespace)
41
: TargetTriple(
std
::move(TargetTriple)),
42
TUNamespace(
std
::move(TUNamespace)) {}
43
44
friend
class
SerializationFormat
;
45
friend
class
TestFixture
;
46
friend
class
TUSummaryBuilder
;
47
};
48
49
}
// namespace clang::ssaf
50
51
#endif
// LLVM_CLANG_SCALABLESTATICANALYSISFRAMEWORK_CORE_TUSUMMARY_TUSUMMARY_H
BuildNamespace.h
EntityIdTable.h
EntityId.h
EntityLinkage.h
EntitySummary.h
SummaryName.h
clang::ssaf::BuildNamespace
Represents a single namespace in the build process.
Definition
BuildNamespace.h:42
clang::ssaf::EntityIdTable
Manages entity name interning and provides efficient EntityId handles.
Definition
EntityIdTable.h:23
clang::ssaf::TUSummary::TUSummaryBuilder
friend class TUSummaryBuilder
Definition
TUSummary.h:46
clang::ssaf::TUSummary::SerializationFormat
friend class SerializationFormat
Definition
TUSummary.h:44
clang::ssaf::TUSummary::TUSummary
TUSummary(llvm::Triple TargetTriple, BuildNamespace TUNamespace)
Definition
TUSummary.h:40
clang::ssaf::TUSummary::TestFixture
friend class TestFixture
Definition
TUSummary.h:45
clang::ssaf
Definition
CompilerInvocation.h:54
std
Definition
__clang_cuda_cmath.h:361
Generated on
for clang by
1.14.0