clang 22.0.0git
clang::ParsingDeclSpec Class Reference

A class for parsing a DeclSpec. More...

#include "clang/Parse/RAIIObjectsForParser.h"

Inheritance diagram for clang::ParsingDeclSpec:
[legend]

Public Member Functions

 ParsingDeclSpec (Parser &P)
 ParsingDeclSpec (Parser &P, ParsingDeclRAIIObject *RAII)
const sema::DelayedDiagnosticPoolgetDelayedDiagnosticPool () const
void complete (Decl *D)
void abort ()
Public Member Functions inherited from clang::DeclSpec
 DeclSpec (AttributeFactory &attrFactory)
SCS getStorageClassSpec () const
TSCS getThreadStorageClassSpec () const
bool isExternInLinkageSpec () const
void setExternInLinkageSpec (bool Value)
SourceLocation getStorageClassSpecLoc () const
SourceLocation getThreadStorageClassSpecLoc () const
void ClearStorageClassSpecs ()
void ClearTypeSpecType ()
TypeSpecifierWidth getTypeSpecWidth () const
TSC getTypeSpecComplex () const
TypeSpecifierSign getTypeSpecSign () const
TST getTypeSpecType () const
bool isTypeAltiVecVector () const
bool isTypeAltiVecPixel () const
bool isTypeAltiVecBool () const
bool isTypeSpecOwned () const
bool isTypeRep () const
bool isTypeSpecPipe () const
bool isTypeSpecSat () const
bool isConstrainedAuto () const
ParsedType getRepAsType () const
DeclgetRepAsDecl () const
ExprgetRepAsExpr () const
ExprgetPackIndexingExpr () const
TemplateIdAnnotationgetRepAsTemplateId () const
CXXScopeSpecgetTypeSpecScope ()
const CXXScopeSpecgetTypeSpecScope () const
SourceRange getSourceRange () const LLVM_READONLY
SourceLocation getBeginLoc () const LLVM_READONLY
SourceLocation getEndLoc () const LLVM_READONLY
SourceLocation getTypeSpecWidthLoc () const
SourceRange getTypeSpecWidthRange () const
SourceLocation getTypeSpecComplexLoc () const
SourceLocation getTypeSpecSignLoc () const
SourceLocation getTypeSpecTypeLoc () const
SourceLocation getAltiVecLoc () const
SourceLocation getTypeSpecSatLoc () const
SourceLocation getTypeSpecTypeNameLoc () const
SourceRange getTypeofParensRange () const
void setTypeArgumentRange (SourceRange range)
bool hasAutoTypeSpec () const
bool hasTagDefinition () const
unsigned getTypeQualifiers () const
 getTypeQualifiers - Return a set of TQs.
SourceLocation getConstSpecLoc () const
SourceLocation getRestrictSpecLoc () const
SourceLocation getVolatileSpecLoc () const
SourceLocation getAtomicSpecLoc () const
SourceLocation getUnalignedSpecLoc () const
SourceLocation getPipeLoc () const
SourceLocation getEllipsisLoc () const
void ClearTypeQualifiers ()
 Clear out all of the type qualifiers.
bool isInlineSpecified () const
SourceLocation getInlineSpecLoc () const
ExplicitSpecifier getExplicitSpecifier () const
bool isVirtualSpecified () const
SourceLocation getVirtualSpecLoc () const
bool hasExplicitSpecifier () const
SourceLocation getExplicitSpecLoc () const
SourceRange getExplicitSpecRange () const
bool isNoreturnSpecified () const
SourceLocation getNoreturnSpecLoc () const
void ClearFunctionSpecs ()
void forEachCVRUQualifier (llvm::function_ref< void(TQ, StringRef, SourceLocation)> Handle)
 This method calls the passed in handler on each CVRU qual being set.
void forEachQualifier (llvm::function_ref< void(TQ, StringRef, SourceLocation)> Handle)
 This method calls the passed in handler on each qual being set.
bool hasTypeSpecifier () const
 Return true if any type-specifier has been found.
unsigned getParsedSpecifiers () const
 Return a bitmask of which flavors of specifiers this DeclSpec includes.
bool isEmpty () const
 isEmpty - Return true if this declaration specifier is completely empty: no tokens were parsed in the production of it.
void SetRangeStart (SourceLocation Loc)
void SetRangeEnd (SourceLocation Loc)
bool SetStorageClassSpec (Sema &S, SCS SC, SourceLocation Loc, const char *&PrevSpec, unsigned &DiagID, const PrintingPolicy &Policy)
 These methods set the specified attribute of the DeclSpec and return false if there was no error.
bool SetStorageClassSpecThread (TSCS TSC, SourceLocation Loc, const char *&PrevSpec, unsigned &DiagID)
bool SetTypeSpecWidth (TypeSpecifierWidth W, SourceLocation Loc, const char *&PrevSpec, unsigned &DiagID, const PrintingPolicy &Policy)
 These methods set the specified attribute of the DeclSpec, but return true and ignore the request if invalid (e.g.
bool SetTypeSpecComplex (TSC C, SourceLocation Loc, const char *&PrevSpec, unsigned &DiagID)
bool SetTypeSpecSign (TypeSpecifierSign S, SourceLocation Loc, const char *&PrevSpec, unsigned &DiagID)
bool SetTypeSpecType (TST T, SourceLocation Loc, const char *&PrevSpec, unsigned &DiagID, const PrintingPolicy &Policy)
bool SetTypeSpecType (TST T, SourceLocation Loc, const char *&PrevSpec, unsigned &DiagID, ParsedType Rep, const PrintingPolicy &Policy)
bool SetTypeSpecType (TST T, SourceLocation Loc, const char *&PrevSpec, unsigned &DiagID, TypeResult Rep, const PrintingPolicy &Policy)
bool SetTypeSpecType (TST T, SourceLocation Loc, const char *&PrevSpec, unsigned &DiagID, Decl *Rep, bool Owned, const PrintingPolicy &Policy)
bool SetTypeSpecType (TST T, SourceLocation TagKwLoc, SourceLocation TagNameLoc, const char *&PrevSpec, unsigned &DiagID, ParsedType Rep, const PrintingPolicy &Policy)
bool SetTypeSpecType (TST T, SourceLocation TagKwLoc, SourceLocation TagNameLoc, const char *&PrevSpec, unsigned &DiagID, Decl *Rep, bool Owned, const PrintingPolicy &Policy)
bool SetTypeSpecType (TST T, SourceLocation Loc, const char *&PrevSpec, unsigned &DiagID, TemplateIdAnnotation *Rep, const PrintingPolicy &Policy)
bool SetTypeSpecType (TST T, SourceLocation Loc, const char *&PrevSpec, unsigned &DiagID, Expr *Rep, const PrintingPolicy &policy)
bool SetTypeAltiVecVector (bool isAltiVecVector, SourceLocation Loc, const char *&PrevSpec, unsigned &DiagID, const PrintingPolicy &Policy)
bool SetTypeAltiVecPixel (bool isAltiVecPixel, SourceLocation Loc, const char *&PrevSpec, unsigned &DiagID, const PrintingPolicy &Policy)
bool SetTypeAltiVecBool (bool isAltiVecBool, SourceLocation Loc, const char *&PrevSpec, unsigned &DiagID, const PrintingPolicy &Policy)
bool SetTypePipe (bool isPipe, SourceLocation Loc, const char *&PrevSpec, unsigned &DiagID, const PrintingPolicy &Policy)
bool SetBitIntType (SourceLocation KWLoc, Expr *BitWidth, const char *&PrevSpec, unsigned &DiagID, const PrintingPolicy &Policy)
bool SetTypeSpecSat (SourceLocation Loc, const char *&PrevSpec, unsigned &DiagID)
void SetPackIndexingExpr (SourceLocation EllipsisLoc, Expr *Pack)
bool SetTypeSpecError ()
void UpdateDeclRep (Decl *Rep)
void UpdateTypeRep (ParsedType Rep)
void UpdateExprRep (Expr *Rep)
bool SetTypeQual (TQ T, SourceLocation Loc)
bool SetTypeQual (TQ T, SourceLocation Loc, const char *&PrevSpec, unsigned &DiagID, const LangOptions &Lang)
bool setFunctionSpecInline (SourceLocation Loc, const char *&PrevSpec, unsigned &DiagID)
bool setFunctionSpecForceInline (SourceLocation Loc, const char *&PrevSpec, unsigned &DiagID)
bool setFunctionSpecVirtual (SourceLocation Loc, const char *&PrevSpec, unsigned &DiagID)
bool setFunctionSpecExplicit (SourceLocation Loc, const char *&PrevSpec, unsigned &DiagID, ExplicitSpecifier ExplicitSpec, SourceLocation CloseParenLoc)
bool setFunctionSpecNoreturn (SourceLocation Loc, const char *&PrevSpec, unsigned &DiagID)
bool SetFriendSpec (SourceLocation Loc, const char *&PrevSpec, unsigned &DiagID)
bool setModulePrivateSpec (SourceLocation Loc, const char *&PrevSpec, unsigned &DiagID)
bool SetConstexprSpec (ConstexprSpecKind ConstexprKind, SourceLocation Loc, const char *&PrevSpec, unsigned &DiagID)
FriendSpecified isFriendSpecified () const
bool isFriendSpecifiedFirst () const
SourceLocation getFriendSpecLoc () const
bool isModulePrivateSpecified () const
SourceLocation getModulePrivateSpecLoc () const
ConstexprSpecKind getConstexprSpecifier () const
SourceLocation getConstexprSpecLoc () const
bool hasConstexprSpecifier () const
void ClearConstexprSpec ()
AttributePoolgetAttributePool () const
void addAttributes (const ParsedAttributesView &AL)
 Concatenates two attribute lists.
bool hasAttributes () const
ParsedAttributesgetAttributes ()
const ParsedAttributesgetAttributes () const
void takeAttributesFrom (ParsedAttributes &attrs)
void Finish (Sema &S, const PrintingPolicy &Policy)
 Finish - This does final analysis of the declspec, issuing diagnostics for things like "_Complex" (lacking an FP type).
const WrittenBuiltinSpecsgetWrittenBuiltinSpecs () const
ObjCDeclSpecgetObjCQualifiers () const
void setObjCQualifiers (ObjCDeclSpec *quals)
bool isMissingDeclaratorOk ()
 Checks if this DeclSpec can stand alone, without a Declarator.

Additional Inherited Members

Public Types inherited from clang::DeclSpec
enum  SCS {
  SCS_unspecified = 0 , SCS_typedef , SCS_extern , SCS_static ,
  SCS_auto , SCS_register , SCS_private_extern , SCS_mutable
}
 storage-class-specifier More...
enum  TSC { TSC_unspecified , TSC_imaginary , TSC_complex }
enum  TQ {
  TQ_unspecified = 0 , TQ_const = 1 , TQ_restrict = 2 , TQ_volatile = 4 ,
  TQ_unaligned = 8 , TQ_atomic = 16
}
enum  ParsedSpecifiers {
  PQ_None = 0 , PQ_StorageClassSpecifier = 1 , PQ_TypeSpecifier = 2 , PQ_TypeQualifier = 4 ,
  PQ_FunctionSpecifier = 8
}
 ParsedSpecifiers - Flags to query which specifiers were applied. More...
enum  FriendSpecified : bool { No , Yes }
typedef ThreadStorageClassSpecifier TSCS
typedef TypeSpecifierType TST
Static Public Member Functions inherited from clang::DeclSpec
static bool isDeclRep (TST T)
static bool isTransformTypeTrait (TST T)
static const char * getSpecifierName (DeclSpec::TST T, const PrintingPolicy &Policy)
 Turn a type-specifier-type into a string like "_Bool" or "union".
static const char * getSpecifierName (DeclSpec::TQ Q)
static const char * getSpecifierName (TypeSpecifierSign S)
static const char * getSpecifierName (DeclSpec::TSC C)
static const char * getSpecifierName (TypeSpecifierWidth W)
static const char * getSpecifierName (DeclSpec::SCS S)
static const char * getSpecifierName (DeclSpec::TSCS S)
static const char * getSpecifierName (ConstexprSpecKind C)
Static Public Attributes inherited from clang::DeclSpec
static const TSCS TSCS_unspecified = clang::TSCS_unspecified
static const TSCS TSCS___thread = clang::TSCS___thread
static const TSCS TSCS_thread_local = clang::TSCS_thread_local
static const TSCS TSCS__Thread_local = clang::TSCS__Thread_local
static const TST TST_unspecified = clang::TST_unspecified
static const TST TST_void = clang::TST_void
static const TST TST_char = clang::TST_char
static const TST TST_wchar = clang::TST_wchar
static const TST TST_char8 = clang::TST_char8
static const TST TST_char16 = clang::TST_char16
static const TST TST_char32 = clang::TST_char32
static const TST TST_int = clang::TST_int
static const TST TST_int128 = clang::TST_int128
static const TST TST_bitint = clang::TST_bitint
static const TST TST_half = clang::TST_half
static const TST TST_BFloat16 = clang::TST_BFloat16
static const TST TST_float = clang::TST_float
static const TST TST_double = clang::TST_double
static const TST TST_float16 = clang::TST_Float16
static const TST TST_accum = clang::TST_Accum
static const TST TST_fract = clang::TST_Fract
static const TST TST_float128 = clang::TST_float128
static const TST TST_ibm128 = clang::TST_ibm128
static const TST TST_bool = clang::TST_bool
static const TST TST_decimal32 = clang::TST_decimal32
static const TST TST_decimal64 = clang::TST_decimal64
static const TST TST_decimal128 = clang::TST_decimal128
static const TST TST_enum = clang::TST_enum
static const TST TST_union = clang::TST_union
static const TST TST_struct = clang::TST_struct
static const TST TST_interface = clang::TST_interface
static const TST TST_class = clang::TST_class
static const TST TST_typename = clang::TST_typename
static const TST TST_typeofType = clang::TST_typeofType
static const TST TST_typeofExpr = clang::TST_typeofExpr
static const TST TST_typeof_unqualType = clang::TST_typeof_unqualType
static const TST TST_typeof_unqualExpr = clang::TST_typeof_unqualExpr
static const TST TST_decltype = clang::TST_decltype
static const TST TST_decltype_auto = clang::TST_decltype_auto
static const TST TST_typename_pack_indexing
static const TST TST_auto = clang::TST_auto
static const TST TST_auto_type = clang::TST_auto_type
static const TST TST_unknown_anytype = clang::TST_unknown_anytype
static const TST TST_atomic = clang::TST_atomic
static const TST TST_error = clang::TST_error

Detailed Description

A class for parsing a DeclSpec.

Definition at line 175 of file RAIIObjectsForParser.h.

Constructor & Destructor Documentation

◆ ParsingDeclSpec() [1/2]

clang::ParsingDeclSpec::ParsingDeclSpec ( Parser & P)
inline

Definition at line 179 of file RAIIObjectsForParser.h.

◆ ParsingDeclSpec() [2/2]

clang::ParsingDeclSpec::ParsingDeclSpec ( Parser & P,
ParsingDeclRAIIObject * RAII )
inline

Definition at line 182 of file RAIIObjectsForParser.h.

Member Function Documentation

◆ abort()

void clang::ParsingDeclSpec::abort ( )
inline

Definition at line 194 of file RAIIObjectsForParser.h.

◆ complete()

void clang::ParsingDeclSpec::complete ( Decl * D)
inline

Definition at line 190 of file RAIIObjectsForParser.h.

◆ getDelayedDiagnosticPool()

const sema::DelayedDiagnosticPool & clang::ParsingDeclSpec::getDelayedDiagnosticPool ( ) const
inline

Definition at line 186 of file RAIIObjectsForParser.h.


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