A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://clang.llvm.org/doxygen/DeclSpec_8cpp_source.html below:

clang: lib/Sema/DeclSpec.cpp Source File

26using namespace clang

;

30

assert(

TemplateId

&&

"NULL template-id annotation?"

);

32 "should not convert invalid template-ids to unqualified-ids"

);

41

assert(

TemplateId

&&

"NULL template-id annotation?"

);

43 "should not convert invalid template-ids to unqualified-ids"

);

53

Builder.

Extend

(Context, TemplateKWLoc, TL, ColonColonLoc);

56

Range.

setEnd

(ColonColonLoc);

59 "NestedNameSpecifierLoc range computation incorrect"

);

69

Range.

setEnd

(ColonColonLoc);

72 "NestedNameSpecifierLoc range computation incorrect"

);

78

Builder.

Extend

(Context, Namespace, NamespaceLoc, ColonColonLoc);

82

Range.

setEnd

(ColonColonLoc);

85 "NestedNameSpecifierLoc range computation incorrect"

);

91

Builder.

Extend

(Context, Alias, AliasLoc, ColonColonLoc);

95

Range.

setEnd

(ColonColonLoc);

98 "NestedNameSpecifierLoc range computation incorrect"

);

108 "NestedNameSpecifierLoc range computation incorrect"

);

114

Builder.

MakeSuper

(Context, RD, SuperLoc, ColonColonLoc);

117

Range.

setEnd

(ColonColonLoc);

120 "NestedNameSpecifierLoc range computation incorrect"

);

136

Range =

Other

.getSourceRange();

139 "NestedNameSpecifierLoc range computation incorrect"

);

165 bool

RefQualifierIsLvalueRef,

173 unsigned

NumExceptions,

183

TrailingReturnTypeLoc,

186 "function cannot have _Atomic qualifier"

);

190

I.

Loc

= LocalRangeBegin;

191

I.

EndLoc

= LocalRangeEnd;

238 if

(!TheDeclarator.InlineStorageUsed &&

243

TheDeclarator.InlineStorageUsed =

true

;

248 for

(

unsigned

i = 0; i < NumParams; i++)

249

I.

Fun

.

Params

[i] = std::move(Params[i]);

260 for

(

unsigned

i = 0; i != NumExceptions; ++i) {

278 if

(!DeclsInPrototype.empty()) {

279

assert(ESpecType ==

EST_None

&& NumExceptions == 0 &&

280 "cannot have exception specifiers and decls in prototype"

);

284 for

(

size_t

J = 0; J < DeclsInPrototype.size(); ++J)

295

assert(!

hasName

() &&

"declarator given multiple names!"

);

297

BindingGroup.LSquareLoc = LSquareLoc;

298

BindingGroup.RSquareLoc = RSquareLoc;

299

BindingGroup.NumBindings =

Bindings

.size();

300

Range.

setEnd

(RSquareLoc);

310

BindingGroup.DeleteBindings =

false

;

311

InlineStorageUsed =

true

;

313

BindingGroup.Bindings =

315

BindingGroup.DeleteBindings =

true

;

318

BindingGroup.Bindings);

323 for

(

unsigned

i = 0, i_end = DeclTypeInfo.size(); i < i_end; ++i) {

324 switch

(DeclTypeInfo[i].Kind) {

337

llvm_unreachable(

"Invalid type chunk"

);

375#define GENERIC_IMAGE_TYPE(ImgType, Id) case TST_##ImgType##_t: 376#include "clang/Basic/OpenCLImageTypes.def" 377#define HLSL_INTANGIBLE_TYPE(Name, Id, SingletonId) case TST_##Name: 378#include "clang/Basic/HLSLIntangibleTypes.def" 393#define TRANSFORM_TYPE_TRAIT_DEF(_, Trait) case TST_##Trait: 394#include "clang/Basic/TransformTypeTraits.def" 402 if

(

const LocInfoType

*LIT = dyn_cast<LocInfoType>(QT))

412

llvm_unreachable(

"Invalid TypeSpecType!"

);

421 getName

().OperatorFunctionId.Operator));

429 auto

*

P

= dyn_cast_or_null<ParmVarDecl>(Fun.

Params

[0].

Param

);

430 if

(

P

&&

P

->isExplicitObjectParameter())

444

Handle(

TQ_const

,

"const"

, TQ_constLoc);

446

Handle(

TQ_volatile

,

"volatile"

, TQ_volatileLoc);

448

Handle(

TQ_restrict

,

"restrict"

, TQ_restrictLoc);

462 return

cast<TagDecl>(

getRepAsDecl

())->isCompleteDefinition();

481

FS_noreturn_specified || FS_forceinline_specified)

487 const char

*&PrevSpec,

489 bool

IsExtension =

true

) {

492

DiagID = diag::err_invalid_decl_spec_combination;

494

DiagID = IsExtension ? diag::ext_warn_duplicate_declspec :

495

diag::warn_duplicate_declspec;

510

llvm_unreachable(

"Unknown typespec!"

);

520

llvm_unreachable(

"Unknown typespec!"

);

526 return "unspecified"

;

534

llvm_unreachable(

"Unknown typespec!"

);

543

llvm_unreachable(

"Unknown typespec!"

);

549 return "unspecified"

;

555

llvm_unreachable(

"Unknown typespec!"

);

590 return "type-name-pack-indexing"

;

599#define TRANSFORM_TYPE_TRAIT_DEF(_, Trait) \ 600 case DeclSpec::TST_##Trait: \ 602#include "clang/Basic/TransformTypeTraits.def" 606#define GENERIC_IMAGE_TYPE(ImgType, Id) \ 607 case DeclSpec::TST_##ImgType##_t: \ 608 return #ImgType "_t"

;

609#include "clang/Basic/OpenCLImageTypes.def" 610#define HLSL_INTANGIBLE_TYPE(Name, Id, SingletonId) \ 611 case DeclSpec::TST_##Name: \ 613#include "clang/Basic/HLSLIntangibleTypes.def" 616

llvm_unreachable(

"Unknown typespec!"

);

622 return "unspecified"

;

630

llvm_unreachable(

"Unknown ConstexprSpecKind"

);

642

llvm_unreachable(

"Unknown typespec!"

);

646 const char

*&PrevSpec,

658 "cl_clang_storage_class_specifiers"

, S.

getLangOpts

())) {

664

DiagID = diag::err_opencl_unknown_type_specifier;

671

DiagID = diag::err_opencl_unknown_type_specifier;

685 if

(StorageClassSpec ==

SCS_auto

) {

687

PrevSpec, DiagID, Policy);

688

assert(!

isInvalid

&&

"auto SCS -> TST recovery failed"

);

696

!(SCS_extern_in_linkage_spec &&

701

StorageClassSpec = SC;

702

StorageClassSpecLoc =

Loc

;

703

assert((

unsigned

)SC == StorageClassSpec &&

"SCS constants overflow bitfield"

);

708 const char

*&PrevSpec,

713

ThreadStorageClassSpec =

TSC

;

714

ThreadStorageClassSpecLoc =

Loc

;

722 const char

*&PrevSpec,

unsigned

&DiagID,

732

TypeSpecWidth =

static_cast<unsigned>

(W);

739 const char

*&PrevSpec,

743

TypeSpecComplex =

C

;

749 const char

*&PrevSpec,

unsigned

&DiagID) {

752

TypeSpecSign =

static_cast<unsigned>

(S);

758 const char

*&PrevSpec,

767 const char

*&PrevSpec,

771

assert(

isTypeRep

(

T

) &&

"T does not store a type"

);

772

assert(Rep &&

"no type provided!"

);

777

DiagID = diag::err_invalid_decl_spec_combination;

783

TSTNameLoc = TagNameLoc;

784

TypeSpecOwned =

false

;

798 const char

*&PrevSpec,

802

assert(isExprRep(

T

) &&

"T does not store an expr"

);

803

assert(Rep &&

"no expression provided!"

);

808

DiagID = diag::err_invalid_decl_spec_combination;

815

TypeSpecOwned =

false

;

820 const char

*&PrevSpec,

822 Decl

*Rep,

bool

Owned,

829 const char

*&PrevSpec,

831 Decl

*Rep,

bool

Owned,

833

assert(

isDeclRep

(

T

) &&

"T does not store a decl"

);

840

DiagID = diag::err_invalid_decl_spec_combination;

846

TSTNameLoc = TagNameLoc;

847

TypeSpecOwned = Owned && Rep !=

nullptr

;

855

ConstrainedAuto =

true

;

861 const char

*&PrevSpec,

865 "rep required for these type-spec kinds!"

);

870

DiagID = diag::err_invalid_decl_spec_combination;

875 if

(TypeAltiVecVector && (

T

==

TST_bool

) && !TypeAltiVecBool) {

876

TypeAltiVecBool =

true

;

880

TypeSpecOwned =

false

;

888

DiagID = diag::warn_duplicate_declspec;

898 const char

*&PrevSpec,

unsigned

&DiagID,

904

DiagID = diag::err_invalid_vector_decl_spec_combination;

907

TypeAltiVecVector = isAltiVecVector;

913 const char

*&PrevSpec,

unsigned

&DiagID,

919

DiagID = diag::err_invalid_decl_spec_combination;

930 const char

*&PrevSpec,

unsigned

&DiagID,

934 if

(!TypeAltiVecVector || TypeAltiVecPixel ||

937

DiagID = diag::err_invalid_pixel_decl_spec_combination;

940

TypeAltiVecPixel = isAltiVecPixel;

947 const char

*&PrevSpec,

unsigned

&DiagID,

951 if

(!TypeAltiVecVector || TypeAltiVecBool ||

954

DiagID = diag::err_invalid_vector_bool_decl_spec;

957

TypeAltiVecBool = isAltiVecBool;

965

TypeSpecOwned =

false

;

972 const char

*&PrevSpec,

unsigned

&DiagID,

974

assert(BitsExpr &&

"no expression provided!"

);

980

DiagID = diag::err_invalid_decl_spec_combination;

988

TypeSpecOwned =

false

;

993 Expr

*IndexingExpr) {

995 "pack indexing can only be applied to typename"

);

998

this->EllipsisLoc = EllipsisLoc;

1007 if

(TypeQualifiers &

T

) {

1008 bool

IsExtension =

true

;

1010

IsExtension =

false

;

1018

TypeQualifiers |=

T

;

1022 case TQ_const

: TQ_constLoc =

Loc

;

return false

;

1029

llvm_unreachable(

"Unknown type qualifier!"

);

1036 if

(FS_inline_specified) {

1037

DiagID = diag::warn_duplicate_declspec;

1038

PrevSpec =

"inline"

;

1041

FS_inline_specified =

true

;

1042

FS_inlineLoc =

Loc

;

1048 if

(FS_forceinline_specified) {

1049

DiagID = diag::warn_duplicate_declspec;

1050

PrevSpec =

"__forceinline"

;

1053

FS_forceinline_specified =

true

;

1054

FS_forceinlineLoc =

Loc

;

1059 const char

*&PrevSpec,

1063 if

(FS_virtual_specified) {

1064

DiagID = diag::warn_duplicate_declspec;

1065

PrevSpec =

"virtual"

;

1068

FS_virtual_specified =

true

;

1069

FS_virtualLoc =

Loc

;

1074 const char

*&PrevSpec,

unsigned

&DiagID,

1080

DiagID = (ExplicitSpec.

getExpr

() || FS_explicit_specifier.

getExpr

())

1081

? diag::err_duplicate_declspec

1082

: diag::ext_warn_duplicate_declspec;

1083

PrevSpec =

"explicit"

;

1086

FS_explicit_specifier = ExplicitSpec;

1087

FS_explicitLoc =

Loc

;

1088

FS_explicitCloseParenLoc = CloseParenLoc;

1093 const char

*&PrevSpec,

1097 if

(FS_noreturn_specified) {

1098

DiagID = diag::warn_duplicate_declspec;

1099

PrevSpec =

"_Noreturn"

;

1102

FS_noreturn_specified =

true

;

1103

FS_noreturnLoc =

Loc

;

1110

PrevSpec =

"friend"

;

1111

DiagID = diag::warn_duplicate_declspec;

1115

FriendSpecifiedFirst =

isEmpty

();

1123

PrevSpec =

"__module_private__"

;

1124

DiagID = diag::ext_warn_duplicate_declspec;

1128

ModulePrivateLoc =

Loc

;

1138

ConstexprSpecifier =

static_cast<unsigned>

(ConstexprKind);

1139

ConstexprLoc =

Loc

;

1143void

DeclSpec::SaveWrittenBuiltinSpecs() {

1156

SaveWrittenBuiltinSpecs();

1168

TypeAltiVecVector || TypeAltiVecPixel || TypeAltiVecBool ||

1170 const unsigned

NumLocs = 9;

1172

TSWRange.

getBegin

(), TSCLoc, TSSLoc,

1173

AltiVecLoc, TQ_constLoc, TQ_restrictLoc,

1174

TQ_volatileLoc, TQ_atomicLoc, TQ_unalignedLoc};

1177 for

(

unsigned

I = 0; I != NumLocs; ++I) {

1178 if

(ExtraLocs[I].isValid()) {

1182

FirstLoc = ExtraLocs[I];

1189

TypeAltiVecVector = TypeAltiVecPixel = TypeAltiVecBool =

false

;

1191

S.

Diag

(TSTLoc, diag::err_decltype_auto_cannot_be_combined)

1192

<< Hints[0] << Hints[1] << Hints[2] << Hints[3]

1193

<< Hints[4] << Hints[5] << Hints[6] << Hints[7];

1197 if

(TypeAltiVecVector) {

1202

S.

Diag

(TSWRange.

getBegin

(), diag::err_invalid_vector_long_long_decl_spec);

1208

S.

Diag

(TSTLoc, diag::err_invalid_vector_int128_decl_spec);

1212

S.

Diag

(TSCLoc, diag::err_invalid_vector_complex_decl_spec);

1213 else if

(TypeAltiVecBool) {

1216

S.

Diag

(TSSLoc, diag::err_invalid_vector_bool_decl_spec)

1225

S.

Diag

(TSTLoc, diag::err_invalid_vector_bool_decl_spec)

1226

<< (TypeAltiVecPixel ?

"__pixel"

:

1233

S.

Diag

(TSTLoc, diag::err_invalid_vector_bool_int128_decl_spec);

1239

S.

Diag

(TSWRange.

getBegin

(), diag::err_invalid_vector_bool_decl_spec)

1253

diag::err_invalid_vector_long_double_decl_spec);

1256

S.

Diag

(TSTLoc, diag::err_invalid_vector_double_decl_spec);

1257

}

else if

(TypeSpecType ==

TST_float

) {

1262

S.

Diag

(TSTLoc, diag::err_invalid_vector_float_decl_spec);

1274

S.

Diag

(TSWRange.

getBegin

(), diag::err_invalid_vector_long_decl_spec);

1277

diag::warn_vector_long_decl_spec_combination)

1281 if

(TypeAltiVecPixel) {

1286

TypeSpecOwned =

false

;

1290 bool

IsFixedPointType =

1299

!IsFixedPointType && TypeSpecType !=

TST_bitint

) {

1300

S.

Diag

(TSSLoc, diag::err_invalid_sign_spec)

1315 else if

(!(TypeSpecType ==

TST_int

||

1316

(IsFixedPointType &&

1318

S.

Diag

(TSWRange.

getBegin

(), diag::err_invalid_width_spec)

1321

TypeSpecSat =

false

;

1322

TypeSpecOwned =

false

;

1329

!IsFixedPointType) {

1330

S.

Diag

(TSWRange.

getBegin

(), diag::err_invalid_width_spec)

1333

TypeSpecSat =

false

;

1334

TypeSpecOwned =

false

;

1343

S.

Diag

(TSCLoc, diag::ext_plain_complex)

1351

S.

Diag

(TSTLoc, diag::ext_integer_complex);

1356

S.

Diag

(TSCLoc, diag::err_invalid_complex_spec)

1366 switch

(StorageClassSpec) {

1376

diag::err_invalid_decl_spec_combination)

1381

diag::err_invalid_decl_spec_combination)

1390

S.

Diag

(ConstexprLoc, diag::err_invalid_decl_spec_combination)

1399

S.

Diag

(ConstexprLoc, diag::err_invalid_decl_spec_combination)

1412

TSTLoc = TSTNameLoc = StorageClassSpecLoc;

1419

S.

Diag

(TSTLoc, diag::ext_auto_type_specifier) <<

0;

1423

S.

Diag

(TSTLoc, diag::ext_hlsl_auto_type_specifier) <<

1;

1426

S.

Diag

(StorageClassSpecLoc, diag::warn_auto_storage_class)

1429

S.

Diag

(TSTLoc, diag::warn_cxx17_compat_unicode_type);

1431

S.

Diag

(TSTLoc, diag::warn_cxx98_compat_unicode_type)

1432

<< (TypeSpecType ==

TST_char16

?

"char16_t"

:

"char32_t"

);

1434

S.

Diag

(ConstexprLoc, diag::warn_cxx98_compat_constexpr);

1436

S.

Diag

(ConstexprLoc, diag::warn_cxx20_compat_consteval);

1438

S.

Diag

(ConstexprLoc, diag::warn_cxx20_compat_constinit);

1455 if

(!SpecName.empty()) SpecName +=

" "

;

1461

S.

Diag

(SCLoc, diag::err_friend_decl_spec)

1462

<< SpecName << StorageHint << ThreadHint;

1480

Keyword =

"virtual"

;

1484

Keyword =

"explicit"

;

1489

S.

Diag

(SCLoc, diag::err_friend_decl_spec)

1492

FS_virtual_specified =

false

;

1497

assert(!TypeSpecOwned ||

isDeclRep

((

TST

) TypeSpecType));

1520 for

(

unsigned

I = 0; I != 3; ++I) {

1523 if

(SymbolLocations[I].

isValid

())

1529 const char

*&PrevSpec) {

1530 if

(!FirstLocation.

isValid

())

1531

FirstLocation =

Loc

;

1532

LastLocation =

Loc

;

1535 if

(Specifiers & VS) {

1543 default

: llvm_unreachable(

"Unknown specifier!"

);

1556 default

: llvm_unreachable(

"Unknown specifier"

);

Defines the clang::ASTContext interface.

static Decl::Kind getKind(const Decl *D)

Defines the C++ Decl subclasses, other than those for templates (found in DeclTemplate....

static bool BadSpecifier(T TNew, T TPrev, const char *&PrevSpec, unsigned &DiagID, bool IsExtension=true)

Defines the clang::LangOptions interface.

static bool isInvalid(LocType Loc, bool *Invalid)

Defines the SourceManager interface.

Defines various enumerations that describe declaration and type specifiers.

Defines the clang::TypeLoc interface and its subclasses.

Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...

const TargetInfo & getTargetInfo() const

The result of parsing/analyzing an expression, statement etc.

void takeAllFrom(AttributePool &pool)

Take the given pool's allocations and add them to this pool.

static bool isStaticOverloadedOperator(OverloadedOperatorKind OOK)

Returns true if the given operator is implicitly static in a record context.

Represents a C++ struct/union/class.

void MakeTrivial(ASTContext &Context, NestedNameSpecifier *Qualifier, SourceRange R)

Make a new nested-name-specifier from incomplete source-location information.

SourceLocation getLastQualifierNameLoc() const

Retrieve the location of the name in the last qualifier in this nested name specifier.

void MakeGlobal(ASTContext &Context, SourceLocation ColonColonLoc)

Turn this (empty) nested-name-specifier into the global nested-name-specifier '::'.

NestedNameSpecifierLoc getWithLocInContext(ASTContext &Context) const

Retrieve a nested-name-specifier with location information, copied into the given AST context.

void MakeSuper(ASTContext &Context, CXXRecordDecl *RD, SourceLocation SuperLoc, SourceLocation ColonColonLoc)

Turns this (empty) nested-name-specifier into '__super' nested-name-specifier.

void Extend(ASTContext &Context, SourceLocation TemplateKWLoc, TypeLoc TL, SourceLocation ColonColonLoc)

Extend the current nested-name-specifier by another nested-name-specifier component of the form 'type...

void Adopt(NestedNameSpecifierLoc Other)

Adopt an existing nested-name-specifier (with source-range information).

Captures information about "declaration specifiers".

bool isVirtualSpecified() const

bool setFunctionSpecExplicit(SourceLocation Loc, const char *&PrevSpec, unsigned &DiagID, ExplicitSpecifier ExplicitSpec, SourceLocation CloseParenLoc)

bool isModulePrivateSpecified() const

static const TSCS TSCS___thread

static const TST TST_typeof_unqualType

bool SetTypePipe(bool isPipe, SourceLocation Loc, const char *&PrevSpec, unsigned &DiagID, const PrintingPolicy &Policy)

static const TST TST_typename

bool hasTypeSpecifier() const

Return true if any type-specifier has been found.

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.

static const TST TST_char8

static const TST TST_BFloat16

void ClearStorageClassSpecs()

bool SetConstexprSpec(ConstexprSpecKind ConstexprKind, SourceLocation Loc, const char *&PrevSpec, unsigned &DiagID)

static const TSCS TSCS__Thread_local

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 ...

TST getTypeSpecType() const

SourceLocation getStorageClassSpecLoc() const

SCS getStorageClassSpec() const

bool setModulePrivateSpec(SourceLocation Loc, const char *&PrevSpec, unsigned &DiagID)

bool SetTypeSpecType(TST T, SourceLocation Loc, const char *&PrevSpec, unsigned &DiagID, const PrintingPolicy &Policy)

bool SetTypeSpecSat(SourceLocation Loc, const char *&PrevSpec, unsigned &DiagID)

void SetPackIndexingExpr(SourceLocation EllipsisLoc, Expr *Pack)

bool SetStorageClassSpecThread(TSCS TSC, SourceLocation Loc, const char *&PrevSpec, unsigned &DiagID)

bool SetBitIntType(SourceLocation KWLoc, Expr *BitWidth, const char *&PrevSpec, unsigned &DiagID, const PrintingPolicy &Policy)

static const TST TST_auto_type

static const TST TST_interface

static const TST TST_double

static const TST TST_typeofExpr

unsigned getTypeQualifiers() const

getTypeQualifiers - Return a set of TQs.

bool SetTypeAltiVecPixel(bool isAltiVecPixel, SourceLocation Loc, const char *&PrevSpec, unsigned &DiagID, const PrintingPolicy &Policy)

bool SetFriendSpec(SourceLocation Loc, const char *&PrevSpec, unsigned &DiagID)

static const TST TST_union

static const TST TST_typename_pack_indexing

static const TST TST_char

static const TST TST_bool

static const TST TST_char16

SCS

storage-class-specifier

SourceLocation getExplicitSpecLoc() const

static const TST TST_unknown_anytype

void forEachCVRUQualifier(llvm::function_ref< void(TQ, StringRef, SourceLocation)> Handle)

This method calls the passed in handler on each CVRU qual being set.

bool SetTypeSpecComplex(TSC C, SourceLocation Loc, const char *&PrevSpec, unsigned &DiagID)

bool isMissingDeclaratorOk()

Checks if this DeclSpec can stand alone, without a Declarator.

ParsedType getRepAsType() const

TSCS getThreadStorageClassSpec() const

bool setFunctionSpecNoreturn(SourceLocation Loc, const char *&PrevSpec, unsigned &DiagID)

static const TST TST_accum

static const TST TST_half

ParsedAttributes & getAttributes()

SourceRange getExplicitSpecRange() const

static const TST TST_ibm128

Expr * getRepAsExpr() const

static const TST TST_enum

bool SetTypeAltiVecBool(bool isAltiVecBool, SourceLocation Loc, const char *&PrevSpec, unsigned &DiagID, const PrintingPolicy &Policy)

AttributePool & getAttributePool() const

static const TST TST_float128

static const TST TST_decltype

static bool isDeclRep(TST T)

void Finish(Sema &S, const PrintingPolicy &Policy)

Finish - This does final analysis of the declspec, issuing diagnostics for things like "_Complex" (la...

static const TST TST_typeof_unqualExpr

static const TST TST_class

bool hasTagDefinition() const

static const TST TST_decimal64

unsigned getParsedSpecifiers() const

Return a bitmask of which flavors of specifiers this DeclSpec includes.

bool SetTypeQual(TQ T, SourceLocation Loc)

static const TST TST_wchar

SourceLocation getTypeSpecComplexLoc() const

static const TST TST_void

static const TSCS TSCS_unspecified

static const TST TST_bitint

static const char * getSpecifierName(DeclSpec::TST T, const PrintingPolicy &Policy)

Turn a type-specifier-type into a string like "_Bool" or "union".

static const TST TST_float

static const TST TST_atomic

static const TST TST_fract

SourceLocation getThreadStorageClassSpecLoc() const

Decl * getRepAsDecl() const

static const TST TST_float16

static const TST TST_unspecified

SourceLocation getVirtualSpecLoc() const

TypeSpecifierSign getTypeSpecSign() const

bool isEmpty() const

isEmpty - Return true if this declaration specifier is completely empty: no tokens were parsed in the...

static const TST TST_decltype_auto

static const TSCS TSCS_thread_local

static const TST TST_error

void forEachQualifier(llvm::function_ref< void(TQ, StringRef, SourceLocation)> Handle)

This method calls the passed in handler on each qual being set.

bool setFunctionSpecVirtual(SourceLocation Loc, const char *&PrevSpec, unsigned &DiagID)

static const TST TST_decimal32

bool SetTypeAltiVecVector(bool isAltiVecVector, SourceLocation Loc, const char *&PrevSpec, unsigned &DiagID, const PrintingPolicy &Policy)

TypeSpecifierWidth getTypeSpecWidth() const

static const TST TST_char32

bool setFunctionSpecInline(SourceLocation Loc, const char *&PrevSpec, unsigned &DiagID)

static const TST TST_decimal128

static const TST TST_int128

FriendSpecified isFriendSpecified() const

bool hasExplicitSpecifier() const

bool setFunctionSpecForceInline(SourceLocation Loc, const char *&PrevSpec, unsigned &DiagID)

static const TST TST_typeofType

TemplateIdAnnotation * TemplateIdRep

bool SetTypeSpecSign(TypeSpecifierSign S, SourceLocation Loc, const char *&PrevSpec, unsigned &DiagID)

static const TST TST_auto

@ PQ_StorageClassSpecifier

ConstexprSpecKind getConstexprSpecifier() const

static const TST TST_struct

Decl - This represents one declaration (or definition), e.g.

Information about one declarator, including the parsed type information and the identifier.

bool isDeclarationOfFunction() const

Determine whether the declaration that will be produced from this declaration will be a function.

const DeclSpec & getDeclSpec() const

getDeclSpec - Return the declaration-specifier that this declarator was declared with.

void SetIdentifier(const IdentifierInfo *Id, SourceLocation IdLoc)

Set the name of this declarator to be the given identifier.

bool isFunctionDeclarator() const

isFunctionDeclarator - Once this declarator is fully parsed and formed, this method returns true if t...

void setDecompositionBindings(SourceLocation LSquareLoc, MutableArrayRef< DecompositionDeclarator::Binding > Bindings, SourceLocation RSquareLoc)

Set the decomposition bindings for this declarator.

DeclaratorChunk::ParamInfo InlineParams[16]

InlineParams - This is a local array used for the first function decl chunk to avoid going to the hea...

DeclaratorContext getContext() const

bool isCtorOrDtor()

Returns true if this declares a constructor or a destructor.

UnqualifiedId & getName()

Retrieve the name specified by this declarator.

bool hasName() const

hasName - Whether this declarator has a name, which might be an identifier (accessible via getIdentif...

ArrayRef< TemplateParameterList * > getTemplateParameterLists() const

The template parameter lists that preceded the declarator.

bool isExplicitObjectMemberFunction()

bool isStaticMember()

Returns true if this declares a static member.

DecompositionDeclarator::Binding InlineBindings[16]

DeclaratorChunk::FunctionTypeInfo & getFunctionTypeInfo()

getFunctionTypeInfo - Retrieves the function type info object (looking through parentheses).

Store information needed for an explicit specifier.

const Expr * getExpr() const

This represents one expression.

Annotates a diagnostic with some code that should be inserted, removed, or replaced to fix the proble...

static FixItHint CreateRemoval(CharSourceRange RemoveRange)

Create a code modification hint that removes the given source range.

static FixItHint CreateInsertion(SourceLocation InsertionLoc, StringRef Code, bool BeforePreviousInsertions=false)

Create a code modification hint that inserts the given code string at a specific location.

One of these records is kept for each identifier that is lexed.

Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that i...

unsigned getOpenCLCompatibleVersion() const

Return the OpenCL version that kernel language is compatible with.

Holds a QualType and a TypeSourceInfo* that came out of a declarator parsing.

This represents a decl that may have a name.

Represents a C++ namespace alias.

Represent a C++ namespace.

void Adopt(NestedNameSpecifierLoc Other)

Adopt an existing nested-name-specifier (with source-range information).

void MakeTrivial(ASTContext &Context, NestedNameSpecifier *Qualifier, SourceRange R)

Make a new nested-name-specifier from incomplete source-location information.

void Clear()

Clear out this builder, and prepare it to build another nested-name-specifier with source-location in...

NestedNameSpecifierLoc getTemporary() const

Retrieve a nested-name-specifier with location information based on the information in this builder.

void MakeSuper(ASTContext &Context, CXXRecordDecl *RD, SourceLocation SuperLoc, SourceLocation ColonColonLoc)

Turns this (empty) nested-name-specifier into '__super' nested-name-specifier.

SourceRange getSourceRange() const LLVM_READONLY

Retrieve the source range covered by this nested-name-specifier.

NestedNameSpecifier * getRepresentation() const

Retrieve the representation of the nested-name-specifier.

void Extend(ASTContext &Context, SourceLocation TemplateKWLoc, TypeLoc TL, SourceLocation ColonColonLoc)

Extend the current nested-name-specifier by another nested-name-specifier component of the form 'type...

void MakeGlobal(ASTContext &Context, SourceLocation ColonColonLoc)

Turn this (empty) nested-name-specifier into the global nested-name-specifier '::'.

NestedNameSpecifierLoc getWithLocInContext(ASTContext &Context) const

Retrieve a nested-name-specifier with location information, copied into the given AST context.

A C++ nested-name-specifier augmented with source location information.

SourceLocation getLocalBeginLoc() const

Retrieve the location of the beginning of this component of the nested-name-specifier.

Represents a C++ nested name specifier, such as "\::std::vector<int>::".

static OpaquePtr make(QualType P)

bool isAvailableOption(llvm::StringRef Ext, const LangOptions &LO) const

QualType getPattern() const

Expr * getIndexExpr() const

bool hasAttribute(ParsedAttr::Kind K) const

void takeAllFrom(ParsedAttributes &Other)

A (possibly-)qualified type.

bool isNull() const

Return true if this QualType doesn't point to a type yet.

SemaDiagnosticBuilder Diag(SourceLocation Loc, unsigned DiagID, bool DeferHint=false)

Emit a diagnostic.

Sema - This implements semantic analysis and AST building for C.

SourceLocation getLocForEndOfToken(SourceLocation Loc, unsigned Offset=0)

Calls Lexer::getLocForEndOfToken()

const LangOptions & getLangOpts() const

SourceManager & getSourceManager() const

OpenCLOptions & getOpenCLOptions()

Encodes a location in the source.

bool isValid() const

Return true if this is a valid SourceLocation object.

bool isBeforeInTranslationUnit(SourceLocation LHS, SourceLocation RHS) const

Determines the order of 2 source locations in the translation unit.

A trivial tuple used to represent a source range.

void setBegin(SourceLocation b)

SourceLocation getEnd() const

SourceLocation getBegin() const

void setEnd(SourceLocation e)

const llvm::Triple & getTriple() const

Returns the target triple of the primary target.

virtual bool hasFeature(StringRef Feature) const

Determine whether the given target has the given feature.

Base wrapper for a particular "section" of type source info.

SourceLocation getBeginLoc() const

Get the begin source location.

bool isFunctionType() const

struct OFI OperatorFunctionId

When Kind == IK_OperatorFunctionId, the overloaded operator that we parsed.

SourceLocation EndLocation

The location of the last token that describes this unqualified-id.

void setOperatorFunctionId(SourceLocation OperatorLoc, OverloadedOperatorKind Op, SourceLocation SymbolLocations[3])

Specify that this unqualified-id was parsed as an operator-function-id.

bool isValid() const

Determine whether this unqualified-id refers to a valid name.

void setTemplateId(TemplateIdAnnotation *TemplateId)

Specify that this unqualified-id was parsed as a template-id.

void setConstructorTemplateId(TemplateIdAnnotation *TemplateId)

Specify that this unqualified-id was parsed as a template-id that names a constructor.

SourceLocation StartLocation

The location of the first token that describes this unqualified-id, which will be the location of the...

UnqualifiedIdKind getKind() const

Determine what kind of name we have.

TemplateIdAnnotation * TemplateId

When Kind == IK_TemplateId or IK_ConstructorTemplateId, the template-id annotation that contains the ...

static const char * getSpecifierName(Specifier VS)

bool SetSpecifier(Specifier VS, SourceLocation Loc, const char *&PrevSpec)

Defines the clang::TargetInfo interface.

The JSON file list parser is used to communicate input to InstallAPI.

TypeSpecifierType

Specifies the kind of type.

@ TST_typename_pack_indexing

OverloadedOperatorKind

Enumeration specifying the different kinds of C++ overloaded operators.

ConstexprSpecKind

Define the kind of constexpr specifier.

@ IK_TemplateId

A template-id, e.g., f<int>.

@ IK_ConstructorTemplateId

A constructor named via a template-id.

@ IK_ConstructorName

A constructor name.

@ IK_DestructorName

A destructor name.

@ IK_OperatorFunctionId

An overloaded operator name, e.g., operator+.

ThreadStorageClassSpecifier

Thread storage-class-specifier.

TypeSpecifierWidth

Specifies the width of a type, e.g., short, long, or long long.

TypeSpecifierSign

Specifies the signedness of a type, e.g., signed or unsigned.

const FunctionProtoType * T

@ Other

Other implicit parameter.

ExceptionSpecificationType

The various types of exception specifications that exist in C++11.

@ EST_DependentNoexcept

noexcept(expression), value-dependent

@ EST_Unparsed

not parsed yet

@ EST_None

no exception specification

@ EST_NoexceptFalse

noexcept(expression), evals to 'false'

@ EST_NoexceptTrue

noexcept(expression), evals to 'true'

@ EST_Dynamic

throw(T1, T2)

unsigned isVariadic

isVariadic - If this function has a prototype, and if that proto ends with ',...)',...

CachedTokens * ExceptionSpecTokens

Pointer to the cached tokens for an exception-specification that has not yet been parsed.

SourceLocation MutableLoc

The location of the 'mutable' qualifer in a lambda-declarator, if any.

UnionParsedType TrailingReturnType

If HasTrailingReturnType is true, this is the trailing return type specified.

TypeAndRange * Exceptions

Pointer to a new[]'d array of TypeAndRange objects that contain the types in the function's dynamic e...

ParamInfo * Params

Params - This is a pointer to a new[]'d array of ParamInfo objects that describe the parameters speci...

unsigned RefQualifierIsLValueRef

Whether the ref-qualifier (if any) is an lvalue reference.

NamedDecl ** DeclsInPrototype

Pointer to a new[]'d array of declarations that need to be available for lookup inside the function b...

AttributeFactory * QualAttrFactory

AttributeFactory for the MethodQualifiers.

SourceLocation ExceptionSpecLocEnd

The end location of the exception specification, if any.

SourceLocation EllipsisLoc

When isVariadic is true, the location of the ellipsis in the source.

unsigned DeleteParams

DeleteParams - If this is true, we need to delete[] Params.

DeclSpec * MethodQualifiers

DeclSpec for the function with the qualifier related info.

unsigned NumExceptionsOrDecls

NumExceptionsOrDecls - This is the number of types in the dynamic-exception-decl, if the function has...

SourceLocation RefQualifierLoc

The location of the ref-qualifier, if any.

SourceLocation RParenLoc

The location of the right parenthesis in the source.

unsigned NumParams

NumParams - This is the number of formal parameters specified by the declarator.

unsigned HasTrailingReturnType

HasTrailingReturnType - If this is true, a trailing return type was specified.

unsigned isAmbiguous

Can this declaration be a constructor-style initializer?

unsigned hasPrototype

hasPrototype - This is true if the function had at least one typed parameter.

SourceLocation LParenLoc

The location of the left parenthesis in the source.

unsigned ExceptionSpecType

ExceptionSpecType - An ExceptionSpecificationType value.

SourceLocation ExceptionSpecLocBeg

The beginning location of the exception specification, if any.

SourceLocation TrailingReturnTypeLoc

If HasTrailingReturnType is true, this is the location of the trailing return type.

Expr * NoexceptExpr

Pointer to the expression in the noexcept-specifier of this function, if it has one.

ParamInfo - An array of paraminfo objects is allocated whenever a function declarator is parsed.

One instance of this struct is used for each type in a declarator that is parsed.

SourceLocation EndLoc

EndLoc - If valid, the place where this chunck ends.

static DeclaratorChunk getFunction(bool HasProto, bool IsAmbiguous, SourceLocation LParenLoc, ParamInfo *Params, unsigned NumParams, SourceLocation EllipsisLoc, SourceLocation RParenLoc, bool RefQualifierIsLvalueRef, SourceLocation RefQualifierLoc, SourceLocation MutableLoc, ExceptionSpecificationType ESpecType, SourceRange ESpecRange, ParsedType *Exceptions, SourceRange *ExceptionRanges, unsigned NumExceptions, Expr *NoexceptExpr, CachedTokens *ExceptionSpecTokens, ArrayRef< NamedDecl * > DeclsInPrototype, SourceLocation LocalRangeBegin, SourceLocation LocalRangeEnd, Declarator &TheDeclarator, TypeResult TrailingReturnType=TypeResult(), SourceLocation TrailingReturnTypeLoc=SourceLocation(), DeclSpec *MethodQualifiers=nullptr)

DeclaratorChunk::getFunction - Return a DeclaratorChunk for a function.

enum clang::DeclaratorChunk::@223 Kind

SourceLocation Loc

Loc - The place where this type was defined.

Wraps an identifier and optional source location for the identifier.

Describes how types, statements, expressions, and declarations should be printed.

unsigned Bool

Whether we can use 'bool' rather than '_Bool' (even if the language doesn't actually have 'bool',...

unsigned MSWChar

When true, print the built-in wchar_t type as __wchar_t.

Information about a template-id annotation token.

SourceLocation TemplateNameLoc

TemplateNameLoc - The location of the template name within the source.

SourceLocation RAngleLoc

The location of the '>' after the template argument list.

SourceLocation SymbolLocations[3]

The source locations of the individual tokens that name the operator, e.g., the "new",...

OverloadedOperatorKind Operator

The kind of overloaded operator.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4