clang 20.0.0git
Public Member Functions | List of all members
clang::ParsingDeclSpec Class Reference

A class for parsing a DeclSpec. More...

#include "clang/Parse/RAIIObjectsForParser.h"

Inheritance diagram for clang::ParsingDeclSpec:
Inheritance graph
[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.

References clang::ParsingDeclRAIIObject::abort().

◆ complete()

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

Definition at line 190 of file RAIIObjectsForParser.h.

References clang::ParsingDeclRAIIObject::complete(), and D.

◆ getDelayedDiagnosticPool()

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

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