clang
23.0.0git
include
clang
ScalableStaticAnalysisFramework
Analyses
UnsafeBufferUsage
UnsafeBufferUsageExtractor.h
Go to the documentation of this file.
1
//===- UnsafeBufferUsageExtractor.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
#ifndef LLVM_CLANG_SCALABLESTATICANALYSISFRAMEWORK_ANALYSES_UNSAFEBUFFERUSAGE_UNSAFEBUFFERUSAGEBUILDER_H
9
#define LLVM_CLANG_SCALABLESTATICANALYSISFRAMEWORK_ANALYSES_UNSAFEBUFFERUSAGE_UNSAFEBUFFERUSAGEBUILDER_H
10
11
#include "
clang/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsage.h
"
12
#include "
clang/ScalableStaticAnalysisFramework/Core/Model/EntityId.h
"
13
#include "
clang/ScalableStaticAnalysisFramework/Core/Model/EntityName.h
"
14
#include "
clang/ScalableStaticAnalysisFramework/Core/TUSummary/TUSummaryBuilder.h
"
15
#include "
clang/ScalableStaticAnalysisFramework/Core/TUSummary/TUSummaryExtractor.h
"
16
#include "llvm/Support/Error.h"
17
#include <memory>
18
19
namespace
clang::ssaf
{
20
class
UnsafeBufferUsageTUSummaryExtractor
:
public
TUSummaryExtractor
{
21
public
:
22
UnsafeBufferUsageTUSummaryExtractor
(
TUSummaryBuilder
&Builder)
23
:
TUSummaryExtractor
(Builder) {}
24
25
static
EntityPointerLevel
buildEntityPointerLevel
(
EntityId
Entity,
26
unsigned
PointerLevel) {
27
return
{Entity, PointerLevel};
28
}
29
30
EntityId
addEntity
(
EntityName
EN) {
return
SummaryBuilder
.addEntity(EN); }
31
32
std::unique_ptr<UnsafeBufferUsageEntitySummary>
33
extractEntitySummary
(
const
Decl
*Contributor,
ASTContext
&Ctx,
34
llvm::Error &
Error
);
35
36
void
HandleTranslationUnit
(
ASTContext
&Ctx)
override
;
37
};
38
}
// namespace clang::ssaf
39
40
#endif
// LLVM_CLANG_SCALABLESTATICANALYSISFRAMEWORK_ANALYSES_UNSAFEBUFFERUSAGE_UNSAFEBUFFERUSAGEBUILDER_H
EntityId.h
EntityName.h
UnsafeBufferUsage.h
TUSummaryBuilder.h
TUSummaryExtractor.h
clang::ASTContext
Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...
Definition
ASTContext.h:226
clang::Decl
Decl - This represents one declaration (or definition), e.g.
Definition
DeclBase.h:86
clang::ssaf::EntityId
Lightweight opaque handle representing an entity in an EntityIdTable.
Definition
EntityId.h:31
clang::ssaf::EntityName
Uniquely identifies an entity in a program.
Definition
EntityName.h:28
clang::ssaf::TUSummaryBuilder
Definition
TUSummaryBuilder.h:22
clang::ssaf::TUSummaryExtractor::TUSummaryExtractor
TUSummaryExtractor(TUSummaryBuilder &Builder)
Definition
TUSummaryExtractor.h:19
clang::ssaf::TUSummaryExtractor::SummaryBuilder
TUSummaryBuilder & SummaryBuilder
Definition
TUSummaryExtractor.h:23
clang::ssaf::UnsafeBufferUsageTUSummaryExtractor::buildEntityPointerLevel
static EntityPointerLevel buildEntityPointerLevel(EntityId Entity, unsigned PointerLevel)
Definition
UnsafeBufferUsageExtractor.h:25
clang::ssaf::UnsafeBufferUsageTUSummaryExtractor::addEntity
EntityId addEntity(EntityName EN)
Definition
UnsafeBufferUsageExtractor.h:30
clang::ssaf::UnsafeBufferUsageTUSummaryExtractor::HandleTranslationUnit
void HandleTranslationUnit(ASTContext &Ctx) override
HandleTranslationUnit - This method is called when the ASTs for entire translation unit have been par...
Definition
UnsafeBufferUsageExtractor.cpp:278
clang::ssaf::UnsafeBufferUsageTUSummaryExtractor::UnsafeBufferUsageTUSummaryExtractor
UnsafeBufferUsageTUSummaryExtractor(TUSummaryBuilder &Builder)
Definition
UnsafeBufferUsageExtractor.h:22
clang::ssaf::UnsafeBufferUsageTUSummaryExtractor::extractEntitySummary
std::unique_ptr< UnsafeBufferUsageEntitySummary > extractEntitySummary(const Decl *Contributor, ASTContext &Ctx, llvm::Error &Error)
Definition
UnsafeBufferUsageExtractor.cpp:262
clang::ssaf
Definition
UnsafeBufferUsage.h:17
clang::DiagnosticLevelMask::Error
@ Error
Definition
DiagnosticOptions.h:43
Generated on
for clang by
1.14.0