clang 22.0.0git
clang::LVComputationKind Struct Reference

Kinds of LV computation. More...

#include "/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/AST/Linkage.h"

Public Member Functions

 LVComputationKind (NamedDecl::ExplicitVisibilityKind EK)
NamedDecl::ExplicitVisibilityKind getExplicitVisibilityKind () const
bool isTypeVisibility () const
bool isValueVisibility () const
unsigned toBits ()

Static Public Member Functions

static LVComputationKind forLinkageOnly ()
 Do an LV computation when we only care about the linkage.

Public Attributes

unsigned ExplicitKind: 1
 The kind of entity whose visibility is ultimately being computed; visibility computations for types and non-types follow different rules.
unsigned IgnoreExplicitVisibility: 1
 Whether explicit visibility attributes should be ignored.
unsigned IgnoreAllVisibility: 1
 Whether all visibility should be ignored.

Static Public Attributes

static constexpr int NumLVComputationKindBits = 3

Detailed Description

Kinds of LV computation.

The linkage side of the computation is always the same, but different things can change how visibility is computed.

Definition at line 29 of file Linkage.h.

Constructor & Destructor Documentation

◆ LVComputationKind()

clang::LVComputationKind::LVComputationKind ( NamedDecl::ExplicitVisibilityKind EK)
inlineexplicit

Member Function Documentation

◆ forLinkageOnly()

LVComputationKind clang::LVComputationKind::forLinkageOnly ( )
inlinestatic

◆ getExplicitVisibilityKind()

NamedDecl::ExplicitVisibilityKind clang::LVComputationKind::getExplicitVisibilityKind ( ) const
inline

Definition at line 49 of file Linkage.h.

References ExplicitKind.

Referenced by isTypeVisibility(), and isValueVisibility().

◆ isTypeVisibility()

bool clang::LVComputationKind::isTypeVisibility ( ) const
inline

◆ isValueVisibility()

bool clang::LVComputationKind::isValueVisibility ( ) const
inline

Definition at line 56 of file Linkage.h.

References getExplicitVisibilityKind(), and clang::NamedDecl::VisibilityForValue.

◆ toBits()

unsigned clang::LVComputationKind::toBits ( )
inline

Definition at line 68 of file Linkage.h.

References ExplicitKind, IgnoreAllVisibility, and IgnoreExplicitVisibility.

Member Data Documentation

◆ ExplicitKind

unsigned clang::LVComputationKind::ExplicitKind

The kind of entity whose visibility is ultimately being computed; visibility computations for types and non-types follow different rules.

Definition at line 33 of file Linkage.h.

Referenced by getExplicitVisibilityKind(), LVComputationKind(), and toBits().

◆ IgnoreAllVisibility

unsigned clang::LVComputationKind::IgnoreAllVisibility

Whether all visibility should be ignored.

When set, we're only interested in computing linkage.

Definition at line 41 of file Linkage.h.

Referenced by clang::LinkageComputer::getLVForDecl(), hasDirectVisibilityAttribute(), LVComputationKind(), and toBits().

◆ IgnoreExplicitVisibility

unsigned clang::LVComputationKind::IgnoreExplicitVisibility

Whether explicit visibility attributes should be ignored.

When set, visibility may only be restricted by the visibility of template arguments.

Definition at line 37 of file Linkage.h.

Referenced by hasExplicitVisibilityAlready(), LVComputationKind(), toBits(), and withExplicitVisibilityAlready().

◆ NumLVComputationKindBits

int clang::LVComputationKind::NumLVComputationKindBits = 3
staticconstexpr

Definition at line 43 of file Linkage.h.


The documentation for this struct was generated from the following file: