//===--- Visibility.h - Visibility enumeration and utilities ----*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// /// /// \file /// Defines the clang::Visibility enumeration and various utility /// functions. /// //===----------------------------------------------------------------------===// #ifndef LLVM_CLANG_BASIC_VISIBILITY_H #define LLVM_CLANG_BASIC_VISIBILITY_H #include "clang/Basic/Linkage.h" #include "llvm/ADT/STLForwardCompat.h" #include <cassert> #include <cstdint> namespace clang { /// Describes the different kinds of visibility that a declaration /// may have. /// /// Visibility determines how a declaration interacts with the dynamic /// linker. It may also affect whether the symbol can be found by runtime /// symbol lookup APIs. /// /// Visibility is not described in any language standard and /// (nonetheless) sometimes has odd behavior. Not all platforms /// support all visibility kinds. enum Visibility { … }; inline Visibility minVisibility(Visibility L, Visibility R) { … } class LinkageInfo { … }; } #endif // LLVM_CLANG_BASIC_VISIBILITY_H