clang 18.0.0git
Classes | Namespaces | Macros | Enumerations | Functions
Specifiers.h File Reference

Defines various enumerations that describe declaration and type specifiers. More...

#include "llvm/ADT/StringRef.h"
#include "llvm/Support/DataTypes.h"
#include "llvm/Support/ErrorHandling.h"
#include "clang/Basic/TransformTypeTraits.def"
#include "clang/Basic/OpenCLImageTypes.def"

Go to the source code of this file.

Classes

struct  clang::WrittenBuiltinSpecs
 Structure that packs information about the type specifiers that were written in a particular type specifier sequence. More...
 

Namespaces

namespace  llvm
 YAML serialization mapping.
 
namespace  clang
 

Macros

#define TRANSFORM_TYPE_TRAIT_DEF(_, Trait)   TST_##Trait,
 
#define GENERIC_IMAGE_TYPE(ImgType, Id)   TST_##ImgType##_t,
 

Enumerations

enum class  clang::ExplicitSpecKind : unsigned { clang::ResolvedFalse , clang::ResolvedTrue , clang::Unresolved }
 Define the meaning of possible values of the kind in ExplicitSpecifier. More...
 
enum class  clang::ConstexprSpecKind { clang::Unspecified , clang::Constexpr , clang::Consteval , clang::Constinit }
 Define the kind of constexpr specifier. More...
 
enum class  clang::IfStatementKind : unsigned { clang::Ordinary , clang::Constexpr , clang::ConstevalNonNegated , clang::ConstevalNegated }
 In an if statement, this denotes whether the statement is a constexpr or consteval if statement. More...
 
enum class  clang::TypeSpecifierWidth { clang::Unspecified , clang::Short , clang::Long , clang::LongLong }
 Specifies the width of a type, e.g., short, long, or long long. More...
 
enum class  clang::TypeSpecifierSign { clang::Unspecified , clang::Signed , clang::Unsigned }
 Specifies the signedness of a type, e.g., signed or unsigned. More...
 
enum class  clang::TypeSpecifiersPipe { clang::Unspecified , clang::Pipe }
 
enum  clang::TypeSpecifierType {
  clang::TST_unspecified , clang::TST_void , clang::TST_char , clang::TST_wchar ,
  clang::TST_char8 , clang::TST_char16 , clang::TST_char32 , clang::TST_int ,
  clang::TST_int128 , clang::TST_bitint , clang::TST_half , clang::TST_Float16 ,
  clang::TST_Accum , clang::TST_Fract , clang::TST_BFloat16 , clang::TST_float ,
  clang::TST_double , clang::TST_float128 , clang::TST_ibm128 , clang::TST_bool ,
  clang::TST_decimal32 , clang::TST_decimal64 , clang::TST_decimal128 , clang::TST_enum ,
  clang::TST_union , clang::TST_struct , clang::TST_class , clang::TST_interface ,
  clang::TST_typename , clang::TST_typeofType , clang::TST_typeofExpr , clang::TST_typeof_unqualType ,
  clang::TST_typeof_unqualExpr , clang::TST_decltype , clang::TST_auto , clang::TST_decltype_auto ,
  clang::TST_auto_type , clang::TST_unknown_anytype , clang::TST_atomic , clang::TST_error
}
 Specifies the kind of type. More...
 
enum  clang::AccessSpecifier { clang::AS_public , clang::AS_protected , clang::AS_private , clang::AS_none }
 A C++ access specifier (public, private, protected), plus the special value "none" which means different things in different contexts. More...
 
enum  clang::ExprValueKind { clang::VK_PRValue , clang::VK_LValue , clang::VK_XValue }
 The categorization of expression values, currently following the C++11 scheme. More...
 
enum  clang::ExprObjectKind {
  clang::OK_Ordinary , clang::OK_BitField , clang::OK_VectorComponent , clang::OK_ObjCProperty ,
  clang::OK_ObjCSubscript , clang::OK_MatrixComponent
}
 A further classification of the kind of object referenced by an l-value or x-value. More...
 
enum  clang::NonOdrUseReason { clang::NOUR_None = 0 , clang::NOUR_Unevaluated , clang::NOUR_Constant , clang::NOUR_Discarded }
 The reason why a DeclRefExpr does not constitute an odr-use. More...
 
enum  clang::TemplateSpecializationKind {
  clang::TSK_Undeclared = 0 , clang::TSK_ImplicitInstantiation , clang::TSK_ExplicitSpecialization , clang::TSK_ExplicitInstantiationDeclaration ,
  clang::TSK_ExplicitInstantiationDefinition
}
 Describes the kind of template specialization that a particular template specialization declaration represents. More...
 
enum  clang::ThreadStorageClassSpecifier { clang::TSCS_unspecified , clang::TSCS___thread , clang::TSCS_thread_local , clang::TSCS__Thread_local }
 Thread storage-class-specifier. More...
 
enum  clang::StorageClass {
  clang::SC_None , clang::SC_Extern , clang::SC_Static , clang::SC_PrivateExtern ,
  clang::SC_Auto , clang::SC_Register
}
 Storage classes. More...
 
enum  clang::InClassInitStyle { clang::ICIS_NoInit , clang::ICIS_CopyInit , clang::ICIS_ListInit }
 In-class initialization styles for non-static data members. More...
 
enum  clang::CallingConv {
  clang::CC_C , clang::CC_X86StdCall , clang::CC_X86FastCall , clang::CC_X86ThisCall ,
  clang::CC_X86VectorCall , clang::CC_X86Pascal , clang::CC_Win64 , clang::CC_X86_64SysV ,
  clang::CC_X86RegCall , clang::CC_AAPCS , clang::CC_AAPCS_VFP , clang::CC_IntelOclBicc ,
  clang::CC_SpirFunction , clang::CC_OpenCLKernel , clang::CC_Swift , clang::CC_SwiftAsync ,
  clang::CC_PreserveMost , clang::CC_PreserveAll , clang::CC_AArch64VectorCall , clang::CC_AArch64SVEPCS ,
  clang::CC_AMDGPUKernelCall
}
 CallingConv - Specifies the calling convention that a function uses. More...
 
enum  clang::StorageDuration {
  clang::SD_FullExpression , clang::SD_Automatic , clang::SD_Thread , clang::SD_Static ,
  clang::SD_Dynamic
}
 The storage duration for an object (per C++ [basic.stc]). More...
 
enum class  clang::NullabilityKind : uint8_t { clang::NonNull = 0 , clang::Nullable , clang::Unspecified , clang::NullableResult }
 Describes the nullability of a particular type. More...
 
enum class  clang::ParameterABI {
  clang::Ordinary , clang::SwiftIndirectResult , clang::SwiftErrorResult , clang::SwiftContext ,
  clang::SwiftAsyncContext
}
 Kinds of parameter ABI. More...
 
enum class  clang::MSInheritanceModel { clang::Single = 0 , clang::Multiple = 1 , clang::Virtual = 2 , clang::Unspecified = 3 }
 Assigned inheritance model for a class in the MS C++ ABI. More...
 

Functions

bool clang::isTemplateInstantiation (TemplateSpecializationKind Kind)
 Determine whether this template specialization kind refers to an instantiation of an entity (as opposed to a non-template or an explicit specialization).
 
bool clang::isTemplateExplicitInstantiationOrSpecialization (TemplateSpecializationKind Kind)
 True if this template specialization kind is an explicit specialization, explicit instantiation declaration, or explicit instantiation definition.
 
bool clang::isLegalForFunction (StorageClass SC)
 Checks whether the given storage class is legal for functions.
 
bool clang::isLegalForVariable (StorageClass SC)
 Checks whether the given storage class is legal for variables.
 
bool clang::supportsVariadicCall (CallingConv CC)
 Checks whether the given calling convention supports variadic calls.
 
llvm::raw_ostream & clang::operator<< (llvm::raw_ostream &, NullabilityKind)
 Prints human-readable debug representation.
 
bool clang::hasWeakerNullability (NullabilityKind L, NullabilityKind R)
 Return true if L has a weaker nullability annotation than R.
 
llvm::StringRef clang::getNullabilitySpelling (NullabilityKind kind, bool isContextSensitive=false)
 Retrieve the spelling of the given nullability kind.
 
llvm::StringRef clang::getParameterABISpelling (ParameterABI kind)
 
llvm::StringRef clang::getAccessSpelling (AccessSpecifier AS)
 

Detailed Description

Defines various enumerations that describe declaration and type specifiers.

Definition in file Specifiers.h.

Macro Definition Documentation

◆ GENERIC_IMAGE_TYPE

#define GENERIC_IMAGE_TYPE (   ImgType,
  Id 
)    TST_##ImgType##_t,

Definition at line 97 of file Specifiers.h.

◆ TRANSFORM_TYPE_TRAIT_DEF

#define TRANSFORM_TYPE_TRAIT_DEF (   _,
  Trait 
)    TST_##Trait,

Definition at line 90 of file Specifiers.h.