14#ifndef LLVM_CLANG_BASIC_VISIBILITY_H
15#define LLVM_CLANG_BASIC_VISIBILITY_H
18#include "llvm/ADT/STLForwardCompat.h"
57 uint8_t visibility_ : 2;
58 LLVM_PREFERRED_TYPE(
bool)
59 uint8_t explicit_ : 1;
61 void setVisibility(
Visibility V,
bool E) { visibility_ =
V; explicit_ =
E; }
67 : linkage_(
llvm::to_underlying(L)), visibility_(
V), explicit_(
E) {
125 if (oldVis == newVis && !newExplicit)
130 setVisibility(newVis, newExplicit);
Visibility getVisibility() const
static LinkageInfo external()
static LinkageInfo none()
void setLinkage(Linkage L)
void mergeExternalVisibility(Linkage L)
void mergeMaybeWithVisibility(LinkageInfo other, bool withVis)
Merge linkage and conditionally merge visibility.
void mergeLinkage(Linkage L)
Linkage getLinkage() const
void mergeExternalVisibility(LinkageInfo Other)
void mergeVisibility(LinkageInfo other)
static LinkageInfo internal()
static LinkageInfo visible_none()
LinkageInfo(Linkage L, Visibility V, bool E)
static LinkageInfo uniqueExternal()
void mergeVisibility(Visibility newVis, bool newExplicit)
Merge in the visibility 'newVis'.
void mergeLinkage(LinkageInfo other)
bool isVisibilityExplicit() const
void merge(LinkageInfo other)
Merge both linkage and visibility.
Defines the Linkage enumeration and various utility functions.
The JSON file list parser is used to communicate input to InstallAPI.
Definition: