clang 20.0.0git
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
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 Types

enum  { NumLVComputationKindBits = 3 }
 

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.
 

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.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
NumLVComputationKindBits 

Definition at line 43 of file Linkage.h.

Constructor & Destructor Documentation

◆ LVComputationKind()

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

Definition at line 45 of file Linkage.h.

Member Function Documentation

◆ forLinkageOnly()

static LVComputationKind clang::LVComputationKind::forLinkageOnly ( )
inlinestatic

Do an LV computation when we only care about the linkage.

Definition at line 61 of file Linkage.h.

References clang::Result, and clang::NamedDecl::VisibilityForValue.

Referenced by clang::LinkageComputer::getDeclLinkageAndVisibility(), clang::NamedDecl::getLinkageInternal(), and clang::NamedDecl::isLinkageValid().

◆ 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(), 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(), 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(), and toBits().


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