clang 20.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"
#include "clang/Basic/HLSLIntangibleTypes.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
 Diagnostic wrappers for TextAPI types for error reporting.
 
namespace  clang
 The JSON file list parser is used to communicate input to InstallAPI.
 

Macros

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

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_typename_pack_indexing ,
  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 , clang::CC_M68kRTD , clang::CC_PreserveNone , clang::CC_RISCVVectorCall
}
 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 98 of file Specifiers.h.

◆ HLSL_INTANGIBLE_TYPE

#define HLSL_INTANGIBLE_TYPE (   Name,
  Id,
  SingletonId 
)     TST_##Name,

Definition at line 101 of file Specifiers.h.

◆ TRANSFORM_TYPE_TRAIT_DEF

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

Definition at line 90 of file Specifiers.h.