clang  6.0.0svn
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
clang::LVComputationKind Struct Reference

Kinds of LV computation. More...

#include "/opt/doxygen-docs/src/llvm/tools/clang/lib/AST/Linkage.h"

Collaboration diagram for clang::LVComputationKind:
Collaboration graph
[legend]

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. More...
 

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. More...
 
unsigned IgnoreExplicitVisibility: 1
 Whether explicit visibility attributes should be ignored. More...
 
unsigned IgnoreAllVisibility: 1
 Whether all visibility should be ignored. More...
 

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 28 of file Linkage.h.

Constructor & Destructor Documentation

◆ LVComputationKind()

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

Definition at line 39 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 55 of file Linkage.h.

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

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

◆ getExplicitVisibilityKind()

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

Definition at line 43 of file Linkage.h.

References ExplicitKind.

Referenced by getExplicitVisibility(), isTypeVisibility(), and isValueVisibility().

◆ isTypeVisibility()

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

◆ isValueVisibility()

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

Definition at line 50 of file Linkage.h.

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

◆ toBits()

unsigned clang::LVComputationKind::toBits ( )
inline

Definition at line 62 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 31 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 37 of file Linkage.h.

Referenced by forLinkageOnly(), clang::LinkageComputer::getLVForDecl(), getVisibilityOf(), 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 34 of file Linkage.h.

Referenced by forLinkageOnly(), getExplicitVisibility(), hasExplicitVisibilityAlready(), toBits(), and withExplicitVisibilityAlready().


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