|
reference, declaration → definition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
|
Derived Classes
tools/clang/include/clang/Parse/RAIIObjectsForParser.h 175 class ParsingDeclSpec : public DeclSpec {
References
tools/clang/include/clang/Parse/Parser.h 826 bool TryAltiVecToken(DeclSpec &DS, SourceLocation Loc,
850 bool TryAltiVecTokenOutOfLine(DeclSpec &DS, SourceLocation Loc,
990 void ConsumeExtraSemi(ExtraSemiKind Kind, DeclSpec::TST T = TST_unspecified);
1849 ExprResult ParseCXXTypeConstructExpression(const DeclSpec &DS);
1854 void ParseCXXSimpleTypeSpecifier(DeclSpec &DS);
1856 bool ParseCXXTypeSpecifierSeq(DeclSpec &DS);
2015 void ParseMicrosoftIfExistsClassDeclaration(DeclSpec::TST TagType,
2152 bool ParseImplicitInt(DeclSpec &DS, CXXScopeSpec *SS,
2159 DeclSpec &DS,
2165 DeclSpec &DS, AccessSpecifier AS, DeclSpecContext DSContext,
2169 DeclSpec &DS, AccessSpecifier AS = AS_none,
2175 void ParseEnumSpecifier(SourceLocation TagLoc, DeclSpec &DS,
2179 void ParseStructUnionBody(SourceLocation StartLoc, DeclSpec::TST TagType,
2417 DeclSpec &DS, Sema::TagUseKind TUK);
2614 void ParseTypeofSpecifier(DeclSpec &DS);
2615 SourceLocation ParseDecltypeSpecifier(DeclSpec &DS);
2616 void AnnotateExistingDecltypeSpecifier(const DeclSpec &DS,
2619 void ParseUnderlyingTypeSpecifier(DeclSpec &DS);
2620 void ParseAtomicSpecifier(DeclSpec &DS);
2690 DeclSpec &DS, unsigned AttrReqs = AR_AllAttributesParsed,
2793 DeclSpec &DS, const ParsedTemplateInfo &TemplateInfo,
2820 DeclSpec::TST TagType, Decl *Tag);
2871 DeclSpec::TST TagType = DeclSpec::TST_unspecified,
2871 DeclSpec::TST TagType = DeclSpec::TST_unspecified,
tools/clang/include/clang/Parse/RAIIObjectsForParser.h 175 class ParsingDeclSpec : public DeclSpec {
tools/clang/include/clang/Sema/DeclSpec.h 417 DeclSpec(const DeclSpec &) = delete;
418 void operator=(const DeclSpec &) = delete;
456 StorageClassSpec = DeclSpec::SCS_unspecified;
457 ThreadStorageClassSpec = DeclSpec::TSCS_unspecified;
464 TypeSpecType = DeclSpec::TST_unspecified;
525 static const char *getSpecifierName(DeclSpec::TST T,
527 static const char *getSpecifierName(DeclSpec::TQ Q);
528 static const char *getSpecifierName(DeclSpec::TSS S);
529 static const char *getSpecifierName(DeclSpec::TSC C);
530 static const char *getSpecifierName(DeclSpec::TSW W);
531 static const char *getSpecifierName(DeclSpec::SCS S);
532 static const char *getSpecifierName(DeclSpec::TSCS S);
613 return getTypeSpecType() != DeclSpec::TST_unspecified ||
614 getTypeSpecWidth() != DeclSpec::TSW_unspecified ||
615 getTypeSpecComplex() != DeclSpec::TSC_unspecified ||
616 getTypeSpecSign() != DeclSpec::TSS_unspecified;
626 return getParsedSpecifiers() == DeclSpec::PQ_None;
1326 DeclSpec *MethodQualifiers;
1388 DeclSpec &getOrCreateMethodQualifiers() {
1391 MethodQualifiers = new DeclSpec(*QualAttrFactory);
1579 I.Ref.HasRestrict = (TypeQuals & DeclSpec::TQ_restrict) != 0;
1623 DeclSpec *MethodQualifiers = nullptr);
1778 const DeclSpec &DS;
1851 Declarator(const DeclSpec &ds, DeclaratorContext C)
1853 InvalidType(DS.getTypeSpecType() == DeclSpec::TST_error),
1864 const DeclSpec &getDeclSpec() const { return DS; }
1871 DeclSpec &getMutableDeclSpec() { return const_cast<DeclSpec &>(DS); }
1918 void ExtendWithDeclSpec(const DeclSpec &DS) {
2068 if (getDeclSpec().getStorageClassSpec() == DeclSpec::SCS_typedef)
2071 if (getDeclSpec().getStorageClassSpec() == DeclSpec::SCS_extern &&
2302 if (getDeclSpec().getStorageClassSpec() == DeclSpec::SCS_typedef)
2454 return InvalidType || DS.getTypeSpecType() == DeclSpec::TST_error;
2503 explicit FieldDeclarator(const DeclSpec &DS)
tools/clang/include/clang/Sema/Sema.h 1518 const DeclSpec *DS = nullptr);
1520 const DeclSpec *DS = nullptr);
2118 void DiagnoseFunctionSpecifiers(const DeclSpec &DS);
2196 void CheckMain(FunctionDecl *FD, const DeclSpec &D);
2275 DeclGroupPtrTy FinalizeDeclaratorGroup(Scope *S, const DeclSpec &DS,
2452 Decl *ParsedFreeStandingDeclSpec(Scope *S, AccessSpecifier AS, DeclSpec &DS,
2454 Decl *ParsedFreeStandingDeclSpec(Scope *S, AccessSpecifier AS, DeclSpec &DS,
2459 Decl *BuildAnonymousStructOrUnion(Scope *S, DeclSpec &DS,
2464 Decl *BuildMicrosoftCAnonymousStruct(Scope *S, DeclSpec &DS,
2627 bool ActOnDuplicateDefinition(DeclSpec &DS, Decl *Prev,
5444 ParsedType getDestructorTypeForDecltype(const DeclSpec &DS,
5757 const DeclSpec& DS);
5892 const DeclSpec &DS,
6243 const DeclSpec &DS,
6255 const DeclSpec &DS,
6265 const DeclSpec &DS,
6409 Decl *ActOnFriendTypeDecl(Scope *S, const DeclSpec &DS,
9233 bool checkOpenCLDisabledTypeDeclSpec(const DeclSpec &DS, QualType T);
11104 void CodeCompleteDeclSpec(Scope *S, DeclSpec &DS,
11120 void CodeCompleteTypeQualifiers(DeclSpec &DS);
11121 void CodeCompleteFunctionQualifiers(DeclSpec &DS, Declarator &D,
tools/clang/lib/Parse/ParseDecl.cpp 52 DeclSpec DS(AttrFactory);
1708 DeclSpec &DS,
2057 if (DS.getStorageClassSpec() == DeclSpec::SCS_typedef) {
2478 void Parser::ParseSpecifierQualifierList(DeclSpec &DS, AccessSpecifier AS,
2490 } else if (Specs == DeclSpec::PQ_None && !DS.hasAttributes()) {
2497 if (Specs & DeclSpec::PQ_StorageClassSpecifier) {
2507 if (Specs & DeclSpec::PQ_FunctionSpecifier) {
2558 bool Parser::ParseImplicitInt(DeclSpec &DS, CXXScopeSpec *SS,
2598 DS.getStorageClassSpec() == DeclSpec::SCS_auto) {
2616 DS.SetTypeSpecType(DeclSpec::TST_typename, Loc, PrevSpec, DiagID, T,
2636 case DeclSpec::TST_enum:
2638 case DeclSpec::TST_union:
2640 case DeclSpec::TST_struct:
2642 case DeclSpec::TST_interface:
2645 case DeclSpec::TST_class:
2753 DS.SetTypeSpecType(DeclSpec::TST_typename, Loc, PrevSpec, DiagID, T,
2881 Parser::DiagnoseMissingSemiAfterTagDefinition(DeclSpec &DS, AccessSpecifier AS,
2968 << DeclSpec::getSpecifierName(DS.getTypeSpecType(), PPol) << tok::semi;
3021 void Parser::ParseDeclarationSpecifiers(DeclSpec &DS,
3058 DS.getStorageClassSpec() == clang::DeclSpec::SCS_typedef &&
3192 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_typename,
3245 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_typename, Loc, PrevSpec,
3264 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_typename, Loc, PrevSpec,
3287 DS.getTypeQualifiers() == DeclSpec::TQ_const &&
3288 DS.getStorageClassSpec() == DeclSpec::SCS_static)
3353 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_typename, Loc, PrevSpec,
3400 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_typename, Loc, PrevSpec,
3472 isInvalid = DS.SetTypeQual(DeclSpec::TQ_unaligned, Loc, PrevSpec, DiagID,
3516 isInvalid = DS.SetStorageClassSpec(Actions, DeclSpec::SCS_typedef, Loc,
3521 if (DS.getThreadStorageClassSpec() == DeclSpec::TSCS___thread)
3523 isInvalid = DS.SetStorageClassSpec(Actions, DeclSpec::SCS_extern, Loc,
3528 isInvalid = DS.SetStorageClassSpec(Actions, DeclSpec::SCS_private_extern,
3533 if (DS.getThreadStorageClassSpec() == DeclSpec::TSCS___thread)
3535 isInvalid = DS.SetStorageClassSpec(Actions, DeclSpec::SCS_static, Loc,
3542 isInvalid = DS.SetStorageClassSpec(Actions, DeclSpec::SCS_auto, Loc,
3548 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_auto, Loc, PrevSpec,
3551 isInvalid = DS.SetStorageClassSpec(Actions, DeclSpec::SCS_auto, Loc,
3557 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_auto_type, Loc, PrevSpec,
3561 isInvalid = DS.SetStorageClassSpec(Actions, DeclSpec::SCS_register, Loc,
3566 isInvalid = DS.SetStorageClassSpec(Actions, DeclSpec::SCS_mutable, Loc,
3571 isInvalid = DS.SetStorageClassSpecThread(DeclSpec::TSCS___thread, Loc,
3576 isInvalid = DS.SetStorageClassSpecThread(DeclSpec::TSCS_thread_local, Loc,
3583 isInvalid = DS.SetStorageClassSpecThread(DeclSpec::TSCS__Thread_local,
3673 isInvalid = DS.SetTypeSpecWidth(DeclSpec::TSW_short, Loc, PrevSpec,
3677 if (DS.getTypeSpecWidth() != DeclSpec::TSW_long)
3678 isInvalid = DS.SetTypeSpecWidth(DeclSpec::TSW_long, Loc, PrevSpec,
3681 isInvalid = DS.SetTypeSpecWidth(DeclSpec::TSW_longlong, Loc, PrevSpec,
3685 isInvalid = DS.SetTypeSpecWidth(DeclSpec::TSW_longlong, Loc, PrevSpec,
3689 isInvalid = DS.SetTypeSpecSign(DeclSpec::TSS_signed, Loc, PrevSpec,
3693 isInvalid = DS.SetTypeSpecSign(DeclSpec::TSS_unsigned, Loc, PrevSpec,
3699 isInvalid = DS.SetTypeSpecComplex(DeclSpec::TSC_complex, Loc, PrevSpec,
3705 isInvalid = DS.SetTypeSpecComplex(DeclSpec::TSC_imaginary, Loc, PrevSpec,
3709 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_void, Loc, PrevSpec,
3713 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_char, Loc, PrevSpec,
3717 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_int, Loc, PrevSpec,
3721 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_int128, Loc, PrevSpec,
3725 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_half, Loc, PrevSpec,
3729 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_float, Loc, PrevSpec,
3733 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_double, Loc, PrevSpec,
3737 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_float16, Loc, PrevSpec,
3744 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_accum, Loc, PrevSpec,
3752 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_fract, Loc, PrevSpec,
3764 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_float128, Loc, PrevSpec,
3768 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_wchar, Loc, PrevSpec,
3772 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_char8, Loc, PrevSpec,
3776 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_char16, Loc, PrevSpec,
3780 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_char32, Loc, PrevSpec,
3789 DS.getTypeSpecType() != DeclSpec::TST_unspecified &&
3790 DS.getStorageClassSpec() == DeclSpec::SCS_typedef) {
3797 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_bool, Loc, PrevSpec,
3802 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_decimal32, Loc, PrevSpec,
3806 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_decimal64, Loc, PrevSpec,
3810 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_decimal128, Loc, PrevSpec,
3875 isInvalid = DS.SetTypeQual(DeclSpec::TQ_const, Loc, PrevSpec, DiagID,
3879 isInvalid = DS.SetTypeQual(DeclSpec::TQ_volatile, Loc, PrevSpec, DiagID,
3883 isInvalid = DS.SetTypeQual(DeclSpec::TQ_restrict, Loc, PrevSpec, DiagID,
3938 isInvalid = DS.SetTypeQual(DeclSpec::TQ_atomic, Loc, PrevSpec, DiagID,
3977 if (DS.SetTypeSpecType(DeclSpec::TST_typename, StartLoc, StartLoc,
4126 DeclSpec::TST TagType, Decl *TagDecl) {
4178 << DeclSpec::getSpecifierName(
4277 void Parser::ParseEnumSpecifier(SourceLocation StartLoc, DeclSpec &DS,
4283 Actions.CodeCompleteTag(getCurScope(), DeclSpec::TST_enum);
4550 getCurScope(), DeclSpec::TST_enum, TUK, StartLoc, SS, Name, NameLoc,
4565 if (DS.SetTypeSpecType(DeclSpec::TST_enum, StartLoc,
4583 getCurScope(), DeclSpec::TST_enum, TUK, SS, Name, StartLoc, NameLoc);
4589 if (DS.SetTypeSpecType(DeclSpec::TST_typename, StartLoc,
4620 if (DS.SetTypeSpecType(DeclSpec::TST_enum, StartLoc,
5301 DeclSpec &DS, unsigned AttrReqs, bool AtomicAllowed,
5328 isInvalid = DS.SetTypeQual(DeclSpec::TQ_const , Loc, PrevSpec, DiagID,
5332 isInvalid = DS.SetTypeQual(DeclSpec::TQ_volatile, Loc, PrevSpec, DiagID,
5336 isInvalid = DS.SetTypeQual(DeclSpec::TQ_restrict, Loc, PrevSpec, DiagID,
5344 isInvalid = DS.SetTypeQual(DeclSpec::TQ_atomic, Loc, PrevSpec, DiagID,
5365 isInvalid = DS.SetTypeQual(DeclSpec::TQ_unaligned, Loc, PrevSpec, DiagID,
5552 DeclSpec DS(AttrFactory);
5572 DeclSpec DS(AttrFactory);
5594 DeclSpec DS(AttrFactory);
5621 DeclSpec DS(AttrFactory);
5637 if (DS.getTypeQualifiers() != DeclSpec::TQ_unspecified) {
5638 if (DS.getTypeQualifiers() & DeclSpec::TQ_const)
5641 if (DS.getTypeQualifiers() & DeclSpec::TQ_volatile)
5645 if (DS.getTypeQualifiers() & DeclSpec::TQ_atomic)
6247 DeclSpec DS(AttrFactory);
6327 D.getDeclSpec().getStorageClassSpec() != DeclSpec::SCS_typedef &&
6577 DeclSpec DS(AttrFactory);
6783 DeclSpec DS(AttrFactory);
6943 void Parser::ParseTypeofSpecifier(DeclSpec &DS) {
6977 if (DS.SetTypeSpecType(DeclSpec::TST_typeofType, StartLoc, PrevSpec,
7000 if (DS.SetTypeSpecType(DeclSpec::TST_typeofExpr, StartLoc, PrevSpec,
7009 void Parser::ParseAtomicSpecifier(DeclSpec &DS) {
7035 if (DS.SetTypeSpecType(DeclSpec::TST_atomic, StartLoc, PrevSpec,
7074 bool Parser::TryAltiVecTokenOutOfLine(DeclSpec &DS, SourceLocation Loc,
tools/clang/lib/Parse/ParseDeclCXX.cpp 933 SourceLocation Parser::ParseDecltypeSpecifier(DeclSpec &DS) {
1029 ? DS.SetTypeSpecType(DeclSpec::TST_decltype, StartLoc, PrevSpec,
1031 : DS.SetTypeSpecType(DeclSpec::TST_decltype_auto, StartLoc, PrevSpec,
1039 void Parser::AnnotateExistingDecltypeSpecifier(const DeclSpec& DS,
1058 void Parser::ParseUnderlyingTypeSpecifier(DeclSpec &DS) {
1082 if (DS.SetTypeSpecType(DeclSpec::TST_underlyingType, StartLoc, PrevSpec,
1131 DeclSpec DS(AttrFactory);
1227 DeclSpec DS(AttrFactory);
1392 SourceLocation StartLoc, DeclSpec &DS,
1397 DeclSpec::TST TagType;
1399 TagType = DeclSpec::TST_struct;
1401 TagType = DeclSpec::TST_interface;
1403 TagType = DeclSpec::TST_class;
1406 TagType = DeclSpec::TST_union;
1450 if (TagType == DeclSpec::TST_struct &&
1537 TagType == DeclSpec::TST_struct;
1743 DeclSpec::getSpecifierName(TagType, PPol));
1780 if (!Name && !TemplateId && (DS.getTypeSpecType() == DeclSpec::TST_error ||
1782 if (DS.getTypeSpecType() != DeclSpec::TST_error) {
1785 << DeclSpec::getSpecifierName(TagType, Policy);
1983 Result = DS.SetTypeSpecType(DeclSpec::TST_typename, StartLoc,
2017 DeclSpec::getSpecifierName(TagType, PPol));
2371 DeclSpec DS(AttrFactory);
2384 if (DS.getTypeQualifiers() != DeclSpec::TQ_unspecified) {
2388 auto &MQ = Function.getOrCreateMethodQualifiers();
2730 if (DS.getStorageClassSpec() == DeclSpec::SCS_typedef) {
2774 DeclSpec::SCS_static &&
2776 DeclSpec::SCS_typedef &&
2829 DeclSpec::SCS_static) {
2867 } else if (ThisDecl && DS.getStorageClassSpec() == DeclSpec::SCS_static)
2885 DeclSpec::SCS_typedef)
3023 TagType == DeclSpec::TST_interface);
3053 DeclSpec::TST TagType, Decl *TagDecl) {
3126 if (TagType == DeclSpec::TST_interface && AS != AS_public) {
3145 << DeclSpec::getSpecifierName(TagType,
3210 TagType == DeclSpec::TST_interface);
3228 if (TagType == DeclSpec::TST_interface)
3319 if (TagType == DeclSpec::TST_class)
3495 DeclSpec DS(AttrFactory);
4323 DeclSpec::TST TagType, ParsedAttributes &AccessAttrs,
tools/clang/lib/Parse/ParseExpr.cpp 1028 DeclSpec DS(AttrFactory);
1252 DeclSpec DS(AttrFactory);
1320 DeclSpec DS(AttrFactory);
1909 DeclSpec DS(AttrFactory);
2503 DeclSpec DS(AttrFactory);
2984 DeclSpec DS(AttrFactory);
3026 DeclSpec DS(AttrFactory);
tools/clang/lib/Parse/ParseExprCXX.cpp 213 DeclSpec DS(AttrFactory);
220 if (DS.getTypeSpecType() == DeclSpec::TST_decltype_auto ||
1189 DeclSpec &DS) {
1204 DeclSpec &DS) {
1231 DeclSpec DS(AttrFactory);
1515 DeclSpec DS(AttrFactory);
1715 DeclSpec DS(AttrFactory);
1825 Parser::ParseCXXTypeConstructExpression(const DeclSpec &DS) {
1993 DeclSpec DS(AttrFactory);
2084 void Parser::ParseCXXSimpleTypeSpecifier(DeclSpec &DS) {
2102 DS.SetTypeSpecType(DeclSpec::TST_typename, Loc, PrevSpec, DiagID,
2116 DS.SetTypeSpecWidth(DeclSpec::TSW_short, Loc, PrevSpec, DiagID, Policy);
2119 DS.SetTypeSpecWidth(DeclSpec::TSW_long, Loc, PrevSpec, DiagID, Policy);
2122 DS.SetTypeSpecWidth(DeclSpec::TSW_longlong, Loc, PrevSpec, DiagID, Policy);
2125 DS.SetTypeSpecSign(DeclSpec::TSS_signed, Loc, PrevSpec, DiagID);
2128 DS.SetTypeSpecSign(DeclSpec::TSS_unsigned, Loc, PrevSpec, DiagID);
2131 DS.SetTypeSpecType(DeclSpec::TST_void, Loc, PrevSpec, DiagID, Policy);
2134 DS.SetTypeSpecType(DeclSpec::TST_char, Loc, PrevSpec, DiagID, Policy);
2137 DS.SetTypeSpecType(DeclSpec::TST_int, Loc, PrevSpec, DiagID, Policy);
2140 DS.SetTypeSpecType(DeclSpec::TST_int128, Loc, PrevSpec, DiagID, Policy);
2143 DS.SetTypeSpecType(DeclSpec::TST_half, Loc, PrevSpec, DiagID, Policy);
2146 DS.SetTypeSpecType(DeclSpec::TST_float, Loc, PrevSpec, DiagID, Policy);
2149 DS.SetTypeSpecType(DeclSpec::TST_double, Loc, PrevSpec, DiagID, Policy);
2152 DS.SetTypeSpecType(DeclSpec::TST_float16, Loc, PrevSpec, DiagID, Policy);
2155 DS.SetTypeSpecType(DeclSpec::TST_float128, Loc, PrevSpec, DiagID, Policy);
2158 DS.SetTypeSpecType(DeclSpec::TST_wchar, Loc, PrevSpec, DiagID, Policy);
2161 DS.SetTypeSpecType(DeclSpec::TST_char8, Loc, PrevSpec, DiagID, Policy);
2164 DS.SetTypeSpecType(DeclSpec::TST_char16, Loc, PrevSpec, DiagID, Policy);
2167 DS.SetTypeSpecType(DeclSpec::TST_char32, Loc, PrevSpec, DiagID, Policy);
2170 DS.SetTypeSpecType(DeclSpec::TST_bool, Loc, PrevSpec, DiagID, Policy);
2206 bool Parser::ParseCXXTypeSpecifierSeq(DeclSpec &DS) {
2619 DeclSpec DS(AttrFactory);
2836 DeclSpec DS(AttrFactory);
2952 DeclSpec DS(AttrFactory);
3487 DeclSpec DS(AttrFactory);
3562 DeclSpec DS(AttrFactory);
tools/clang/lib/Parse/ParseObjc.cpp 1255 DeclSpec declSpec(AttrFactory);
1481 DeclSpec DS(AttrFactory);
1684 DeclSpec DS(AttrFactory);
2533 DeclSpec DS(AttrFactory);
2919 DeclSpec DS(AttrFactory);
tools/clang/lib/Parse/ParseOpenMP.cpp 602 DeclSpec DS(AttrFactory);
1249 DeclSpec::TST TagType, Decl *Tag) {
tools/clang/lib/Parse/ParseStmt.cpp 1053 DeclSpec DS(AttrFactory);
2299 DeclSpec DS(AttrFactory);
tools/clang/lib/Parse/ParseStmtAsm.cpp 698 DeclSpec DS(AttrFactory);
703 if (DS.getTypeQualifiers() & DeclSpec::TQ_const)
705 if (DS.getTypeQualifiers() & DeclSpec::TQ_restrict)
708 if (DS.getTypeQualifiers() & DeclSpec::TQ_atomic)
712 bool isVolatile = DS.getTypeQualifiers() & DeclSpec::TQ_volatile;
tools/clang/lib/Parse/ParseTemplate.cpp 272 if (DS.getStorageClassSpec() == DeclSpec::SCS_typedef) {
787 DeclSpec DS(AttrFactory);
794 if (DS.getTypeSpecType() == DeclSpec::TST_unspecified) {
tools/clang/lib/Parse/Parser.cpp 177 void Parser::ConsumeExtraSemi(ExtraSemiKind Kind, DeclSpec::TST TST) {
205 << Kind << DeclSpec::getSpecifierName(TST,
1016 case DeclSpec::TST_class:
1018 case DeclSpec::TST_struct:
1020 case DeclSpec::TST_union:
1022 case DeclSpec::TST_enum:
1024 case DeclSpec::TST_interface:
1033 DeclSpec::isDeclRep(DS.getTypeSpecType())
1071 if (DS.SetTypeSpecType(DeclSpec::TST_unspecified, AtLoc, PrevSpec, DiagID,
1089 DS.getStorageClassSpec() == DeclSpec::SCS_extern &&
1090 DS.getParsedSpecifiers() == DeclSpec::PQ_StorageClassSpecifier) {
1143 D.getMutableDeclSpec().SetTypeSpecType(DeclSpec::TST_int,
1366 DeclSpec DS(AttrFactory);
1381 if (DS.getStorageClassSpec() != DeclSpec::SCS_unspecified &&
1382 DS.getStorageClassSpec() != DeclSpec::SCS_register) {
1387 if (DS.getThreadStorageClassSpec() != DeclSpec::TSCS_unspecified) {
tools/clang/lib/Sema/DeclSpec.cpp 175 DeclSpec *MethodQualifiers) {
210 I.Fun.MethodQualifiers = new DeclSpec(attrs.getPool().getFactory());
398 return getDeclSpec().getStorageClassSpec() == DeclSpec::SCS_static ||
458 PrevSpec = DeclSpec::getSpecifierName(TPrev);
467 const char *DeclSpec::getSpecifierName(DeclSpec::SCS S) {
469 case DeclSpec::SCS_unspecified: return "unspecified";
470 case DeclSpec::SCS_typedef: return "typedef";
471 case DeclSpec::SCS_extern: return "extern";
472 case DeclSpec::SCS_static: return "static";
473 case DeclSpec::SCS_auto: return "auto";
474 case DeclSpec::SCS_register: return "register";
475 case DeclSpec::SCS_private_extern: return "__private_extern__";
476 case DeclSpec::SCS_mutable: return "mutable";
481 const char *DeclSpec::getSpecifierName(DeclSpec::TSCS S) {
483 case DeclSpec::TSCS_unspecified: return "unspecified";
484 case DeclSpec::TSCS___thread: return "__thread";
485 case DeclSpec::TSCS_thread_local: return "thread_local";
486 case DeclSpec::TSCS__Thread_local: return "_Thread_local";
520 const char *DeclSpec::getSpecifierName(DeclSpec::TST T,
523 case DeclSpec::TST_unspecified: return "unspecified";
524 case DeclSpec::TST_void: return "void";
525 case DeclSpec::TST_char: return "char";
526 case DeclSpec::TST_wchar: return Policy.MSWChar ? "__wchar_t" : "wchar_t";
527 case DeclSpec::TST_char8: return "char8_t";
528 case DeclSpec::TST_char16: return "char16_t";
529 case DeclSpec::TST_char32: return "char32_t";
530 case DeclSpec::TST_int: return "int";
531 case DeclSpec::TST_int128: return "__int128";
532 case DeclSpec::TST_half: return "half";
533 case DeclSpec::TST_float: return "float";
534 case DeclSpec::TST_double: return "double";
535 case DeclSpec::TST_accum: return "_Accum";
536 case DeclSpec::TST_fract: return "_Fract";
537 case DeclSpec::TST_float16: return "_Float16";
538 case DeclSpec::TST_float128: return "__float128";
539 case DeclSpec::TST_bool: return Policy.Bool ? "bool" : "_Bool";
540 case DeclSpec::TST_decimal32: return "_Decimal32";
541 case DeclSpec::TST_decimal64: return "_Decimal64";
542 case DeclSpec::TST_decimal128: return "_Decimal128";
543 case DeclSpec::TST_enum: return "enum";
544 case DeclSpec::TST_class: return "class";
545 case DeclSpec::TST_union: return "union";
546 case DeclSpec::TST_struct: return "struct";
547 case DeclSpec::TST_interface: return "__interface";
548 case DeclSpec::TST_typename: return "type-name";
549 case DeclSpec::TST_typeofType:
550 case DeclSpec::TST_typeofExpr: return "typeof";
551 case DeclSpec::TST_auto: return "auto";
552 case DeclSpec::TST_auto_type: return "__auto_type";
553 case DeclSpec::TST_decltype: return "(decltype)";
554 case DeclSpec::TST_decltype_auto: return "decltype(auto)";
555 case DeclSpec::TST_underlyingType: return "__underlying_type";
556 case DeclSpec::TST_unknown_anytype: return "__unknown_anytype";
557 case DeclSpec::TST_atomic: return "_Atomic";
562 case DeclSpec::TST_error: return "(error)";
579 case DeclSpec::TQ_unspecified: return "unspecified";
580 case DeclSpec::TQ_const: return "const";
581 case DeclSpec::TQ_restrict: return "restrict";
582 case DeclSpec::TQ_volatile: return "volatile";
583 case DeclSpec::TQ_atomic: return "_Atomic";
584 case DeclSpec::TQ_unaligned: return "__unaligned";
721 PrevSpec = DeclSpec::getSpecifierName((TST) TypeSpecType, Policy);
743 PrevSpec = DeclSpec::getSpecifierName((TST) TypeSpecType, Policy);
775 PrevSpec = DeclSpec::getSpecifierName((TST) TypeSpecType, Policy);
796 PrevSpec = DeclSpec::getSpecifierName((TST) TypeSpecType, Policy);
830 PrevSpec = DeclSpec::getSpecifierName((TST) TypeSpecType, Policy);
845 PrevSpec = DeclSpec::getSpecifierName((TST)TypeSpecType, Policy);
863 PrevSpec = DeclSpec::getSpecifierName((TST) TypeSpecType, Policy);
880 PrevSpec = DeclSpec::getSpecifierName((TST) TypeSpecType, Policy);
1252 << DeclSpec::getSpecifierName(getThreadStorageClassSpec())
1257 << DeclSpec::getSpecifierName(getStorageClassSpec())
1304 if (DeclSpec::SCS SC = getStorageClassSpec()) {
1310 if (DeclSpec::TSCS TSC = getThreadStorageClassSpec()) {
1365 StorageClassSpec != DeclSpec::SCS_typedef;
tools/clang/lib/Sema/Sema.cpp 2275 bool Sema::checkOpenCLDisabledTypeDeclSpec(const DeclSpec &DS, QualType QT) {
tools/clang/lib/Sema/SemaCXXScopeSpec.cpp 847 const DeclSpec &DS,
849 if (SS.isInvalid() || DS.getTypeSpecType() == DeclSpec::TST_error)
tools/clang/lib/Sema/SemaCodeComplete.cpp 4149 void Sema::CodeCompleteDeclSpec(Scope *S, DeclSpec &DS,
4171 (DS.getTypeSpecType() == DeclSpec::TST_class ||
4172 DS.getTypeSpecType() == DeclSpec::TST_struct))
4197 DS.getParsedSpecifiers() == DeclSpec::PQ_TypeSpecifier &&
4198 DS.getTypeSpecType() == DeclSpec::TST_typename &&
4199 DS.getTypeSpecComplex() == DeclSpec::TSC_unspecified &&
4200 DS.getTypeSpecSign() == DeclSpec::TSS_unspecified &&
4868 case DeclSpec::TST_enum:
4873 case DeclSpec::TST_union:
4878 case DeclSpec::TST_struct:
4879 case DeclSpec::TST_class:
4880 case DeclSpec::TST_interface:
4911 static void AddTypeQualifierResults(DeclSpec &DS, ResultBuilder &Results,
4913 if (!(DS.getTypeQualifiers() & DeclSpec::TQ_const))
4915 if (!(DS.getTypeQualifiers() & DeclSpec::TQ_volatile))
4917 if (LangOpts.C99 && !(DS.getTypeQualifiers() & DeclSpec::TQ_restrict))
4919 if (LangOpts.C11 && !(DS.getTypeQualifiers() & DeclSpec::TQ_atomic))
4921 if (LangOpts.MSVCCompat && !(DS.getTypeQualifiers() & DeclSpec::TQ_unaligned))
4925 void Sema::CodeCompleteTypeQualifiers(DeclSpec &DS) {
4936 void Sema::CodeCompleteFunctionQualifiers(DeclSpec &DS, Declarator &D,
tools/clang/lib/Sema/SemaDecl.cpp 608 DeclSpec::TST Sema::isTagName(IdentifierInfo &II, Scope *S) {
616 case TTK_Struct: return DeclSpec::TST_struct;
617 case TTK_Interface: return DeclSpec::TST_interface;
618 case TTK_Union: return DeclSpec::TST_union;
619 case TTK_Class: return DeclSpec::TST_class;
620 case TTK_Enum: return DeclSpec::TST_enum;
624 return DeclSpec::TST_unspecified;
4281 Sema::ParsedFreeStandingDeclSpec(Scope *S, AccessSpecifier AS, DeclSpec &DS,
4372 static unsigned GetDiagnosticTypeSpecifierID(DeclSpec::TST T) {
4374 case DeclSpec::TST_class:
4376 case DeclSpec::TST_struct:
4378 case DeclSpec::TST_interface:
4380 case DeclSpec::TST_union:
4382 case DeclSpec::TST_enum:
4393 Sema::ParsedFreeStandingDeclSpec(Scope *S, AccessSpecifier AS, DeclSpec &DS,
4399 if (DS.getTypeSpecType() == DeclSpec::TST_class ||
4400 DS.getTypeSpecType() == DeclSpec::TST_struct ||
4401 DS.getTypeSpecType() == DeclSpec::TST_interface ||
4402 DS.getTypeSpecType() == DeclSpec::TST_union ||
4403 DS.getTypeSpecType() == DeclSpec::TST_enum) {
4428 if (TypeQuals & DeclSpec::TQ_restrict)
4489 DS.getStorageClassSpec() != DeclSpec::SCS_typedef) {
4516 DS.getStorageClassSpec() == DeclSpec::SCS_unspecified) {
4525 DS.getTypeSpecType() == DeclSpec::TST_typename) {
4546 if (DS.getTypeSpecType() == DeclSpec::TST_error ||
4551 DS.getStorageClassSpec() != DeclSpec::SCS_typedef)
4559 if (DS.getStorageClassSpec() == DeclSpec::SCS_typedef)
4604 if (DeclSpec::SCS SCS = DS.getStorageClassSpec()) {
4605 if (SCS == DeclSpec::SCS_mutable)
4609 else if (!DS.isExternInLinkageSpec() && SCS != DeclSpec::SCS_typedef)
4611 << DeclSpec::getSpecifierName(SCS);
4614 if (DeclSpec::TSCS TSCS = DS.getThreadStorageClassSpec())
4616 << DeclSpec::getSpecifierName(TSCS);
4618 if (DS.getTypeQualifiers() & DeclSpec::TQ_const)
4620 if (DS.getTypeQualifiers() & DeclSpec::TQ_volatile)
4623 if (DS.getTypeQualifiers() & DeclSpec::TQ_atomic)
4625 if (DS.getTypeQualifiers() & DeclSpec::TQ_unaligned)
4633 DeclSpec::TST TypeSpecType = DS.getTypeSpecType();
4634 if (TypeSpecType == DeclSpec::TST_class ||
4635 TypeSpecType == DeclSpec::TST_struct ||
4636 TypeSpecType == DeclSpec::TST_interface ||
4637 TypeSpecType == DeclSpec::TST_union ||
4638 TypeSpecType == DeclSpec::TST_enum) {
4755 StorageClassSpecToVarDeclStorageClass(const DeclSpec &DS) {
4756 DeclSpec::SCS StorageClassSpec = DS.getStorageClassSpec();
4760 case DeclSpec::SCS_unspecified: return SC_None;
4761 case DeclSpec::SCS_extern:
4765 case DeclSpec::SCS_static: return SC_Static;
4766 case DeclSpec::SCS_auto: return SC_Auto;
4767 case DeclSpec::SCS_register: return SC_Register;
4768 case DeclSpec::SCS_private_extern: return SC_PrivateExtern;
4770 case DeclSpec::SCS_mutable: // Fall through.
4771 case DeclSpec::SCS_typedef: return SC_None;
4811 Decl *Sema::BuildAnonymousStructOrUnion(Scope *S, DeclSpec &DS,
4837 if (DS.getStorageClassSpec() != DeclSpec::SCS_static &&
4845 DS.SetStorageClassSpec(*this, DeclSpec::SCS_static, SourceLocation(),
4851 else if (DS.getStorageClassSpec() != DeclSpec::SCS_unspecified &&
4858 DS.SetStorageClassSpec(*this, DeclSpec::SCS_unspecified,
4866 if (DS.getTypeQualifiers() & DeclSpec::TQ_const)
4870 if (DS.getTypeQualifiers() & DeclSpec::TQ_volatile)
4875 if (DS.getTypeQualifiers() & DeclSpec::TQ_restrict)
4880 if (DS.getTypeQualifiers() & DeclSpec::TQ_atomic)
4885 if (DS.getTypeQualifiers() & DeclSpec::TQ_unaligned)
5016 DeclSpec::SCS SCSpec = DS.getStorageClassSpec();
5018 if (SCSpec == DeclSpec::SCS_mutable) {
5089 Decl *Sema::BuildMicrosoftCAnonymousStruct(Scope *S, DeclSpec &DS,
5319 DeclSpec &DS = D.getMutableDeclSpec();
5321 case DeclSpec::TST_typename:
5322 case DeclSpec::TST_typeofType:
5323 case DeclSpec::TST_underlyingType:
5324 case DeclSpec::TST_atomic: {
5346 case DeclSpec::TST_decltype:
5347 case DeclSpec::TST_typeofExpr: {
5615 if (D.getDeclSpec().getStorageClassSpec() == DeclSpec::SCS_typedef)
5618 (D.getDeclSpec().getStorageClassSpec() == DeclSpec::SCS_extern ||
5624 D.getDeclSpec().getStorageClassSpec() != DeclSpec::SCS_static)
5685 D.getDeclSpec().getStorageClassSpec() != DeclSpec::SCS_typedef &&
5697 if (D.getDeclSpec().getStorageClassSpec() == DeclSpec::SCS_typedef) {
5870 void Sema::DiagnoseFunctionSpecifiers(const DeclSpec &DS) {
6578 DeclSpec::TSCS TSC = D.getDeclSpec().getThreadStorageClassSpec();
6584 << DeclSpec::getSpecifierName(TSC) << 1;
6590 DeclSpec::SCS SCSpec = D.getDeclSpec().getStorageClassSpec();
6604 if (SCSpec == DeclSpec::SCS_mutable) {
6612 if (getLangOpts().CPlusPlus11 && SCSpec == DeclSpec::SCS_register &&
6839 if (DeclSpec::TSCS TSCS = D.getDeclSpec().getThreadStorageClassSpec()) {
6847 (SCSpec != DeclSpec::SCS_unspecified ||
6848 TSCS != DeclSpec::TSCS_thread_local ||
6852 << DeclSpec::getSpecifierName(TSCS);
8111 case DeclSpec::SCS_auto:
8112 case DeclSpec::SCS_register:
8113 case DeclSpec::SCS_mutable:
8119 case DeclSpec::SCS_unspecified: break;
8120 case DeclSpec::SCS_extern:
8124 case DeclSpec::SCS_static: {
8137 case DeclSpec::SCS_private_extern: return SC_PrivateExtern;
8577 if (DeclSpec::TSCS TSCS = D.getDeclSpec().getThreadStorageClassSpec())
8580 << DeclSpec::getSpecifierName(TSCS);
10576 void Sema::CheckMain(FunctionDecl* FD, const DeclSpec& DS) {
12319 DeclSpec DS(Attrs.getPool().getFactory());
12323 DS.SetTypeSpecType(DeclSpec::TST_auto, IdentLoc, PrevSpec, DiagID,
12800 Sema::DeclGroupPtrTy Sema::FinalizeDeclaratorGroup(Scope *S, const DeclSpec &DS,
12856 if (DeclSpec::isDeclRep(DS.getTypeSpecType())) {
12986 const DeclSpec &DS = D.getDeclSpec();
12992 if (DS.getStorageClassSpec() == DeclSpec::SCS_register) {
13003 DS.getStorageClassSpec() == DeclSpec::SCS_auto) {
13005 } else if (DS.getStorageClassSpec() != DeclSpec::SCS_unspecified) {
13011 if (DeclSpec::TSCS TSCS = DS.getThreadStorageClassSpec())
13013 << DeclSpec::getSpecifierName(TSCS);
13247 DeclSpec DS(attrs);
13250 DS.SetTypeSpecType(DeclSpec::TST_int, FTI.Params[i].IdentLoc, PrevSpec,
14167 DeclSpec DS(attrFactory);
14169 bool Error = DS.SetTypeSpecType(DeclSpec::TST_int, Loc, Dummy, DiagID,
15647 bool Sema::ActOnDuplicateDefinition(DeclSpec &DS, Decl *Prev,
15905 if (DeclSpec::TSCS TSCS = D.getDeclSpec().getThreadStorageClassSpec())
15908 << DeclSpec::getSpecifierName(TSCS);
15943 = (D.getDeclSpec().getStorageClassSpec() == DeclSpec::SCS_mutable);
tools/clang/lib/Sema/SemaDeclCXX.cpp 733 if (SCS == DeclSpec::SCS_static) {
734 CPlusPlus20Specifiers.push_back(DeclSpec::getSpecifierName(SCS));
737 BadSpecifiers.push_back(DeclSpec::getSpecifierName(SCS));
742 CPlusPlus20Specifiers.push_back(DeclSpec::getSpecifierName(TSCS));
747 DeclSpec::getSpecifierName(DS.getConstexprSpecifier()));
774 if (DS.getStorageClassSpec() == DeclSpec::SCS_typedef)
780 if ((DS.getTypeQualifiers() & DeclSpec::TQ_volatile) &&
795 if (DS.getTypeSpecType() != DeclSpec::TST_auto ||
835 DS.getStorageClassSpec() == DeclSpec::SCS_extern;
3151 const DeclSpec &DS = D.getDeclSpec();
3176 (DS.getStorageClassSpec() == DeclSpec::SCS_typedef || MSPropertyAttr))
3182 else if (DS.getStorageClassSpec() == DeclSpec::SCS_static)
3222 case DeclSpec::SCS_unspecified:
3223 case DeclSpec::SCS_typedef:
3224 case DeclSpec::SCS_static:
3226 case DeclSpec::SCS_mutable:
3242 bool isInstField = ((DS.getStorageClassSpec() == DeclSpec::SCS_unspecified ||
3243 DS.getStorageClassSpec() == DeclSpec::SCS_mutable) &&
3252 if (D.getDeclSpec().getTypeQualifiers() & DeclSpec::TQ_const)
3260 DeclSpec::TQ_const, ConstexprLoc, PrevSpec, DiagID, getLangOpts());
3269 *this, DeclSpec::SCS_static, ConstexprLoc, PrevSpec, DiagID,
3973 const DeclSpec &DS,
3989 const DeclSpec &DS,
4051 const DeclSpec &DS,
8923 const DeclSpec &DS = D.getDeclSpec();
9124 return check(SpecLoc, DeclSpec::getSpecifierName(Spec));
9126 void check(SourceLocation SpecLoc, DeclSpec::TST Spec) {
9128 DeclSpec::getSpecifierName(Spec, S.getPrintingPolicy()));
9163 auto &DS = D.getMutableDeclSpec();
14727 Decl *Sema::ActOnFriendTypeDecl(Scope *S, const DeclSpec &DS,
14745 if (DS.getTypeQualifiers() & DeclSpec::TQ_const)
14747 if (DS.getTypeQualifiers() & DeclSpec::TQ_volatile)
14749 if (DS.getTypeQualifiers() & DeclSpec::TQ_restrict)
14751 if (DS.getTypeQualifiers() & DeclSpec::TQ_atomic)
14753 if (DS.getTypeQualifiers() & DeclSpec::TQ_unaligned)
14820 const DeclSpec &DS = D.getDeclSpec();
16175 if (DeclSpec::TSCS TSCS = D.getDeclSpec().getThreadStorageClassSpec())
16178 << DeclSpec::getSpecifierName(TSCS);
tools/clang/lib/Sema/SemaDeclObjC.cpp 1567 DeclSpec DS(attrFactory);
1577 DS.SetTypeSpecType(DeclSpec::TST_typename, loc, prevSpec, diagID,
4898 const DeclSpec &DS = D.getDeclSpec();
4902 if (DS.getStorageClassSpec() == DeclSpec::SCS_register) {
4905 } else if (DeclSpec::SCS SCS = DS.getStorageClassSpec()) {
4907 << DeclSpec::getSpecifierName(SCS);
4912 if (DeclSpec::TSCS TSCS = D.getDeclSpec().getThreadStorageClassSpec())
4915 << DeclSpec::getSpecifierName(TSCS);
tools/clang/lib/Sema/SemaExprCXX.cpp 379 ParsedType Sema::getDestructorTypeForDecltype(const DeclSpec &DS,
381 if (DS.getTypeSpecType() == DeclSpec::TST_error)
384 if (DS.getTypeSpecType() == DeclSpec::TST_decltype_auto) {
tools/clang/lib/Sema/SemaLambda.cpp 945 FTI.getOrCreateMethodQualifiers().SetTypeQual(DeclSpec::TQ_const,
tools/clang/lib/Sema/SemaTemplate.cpp 1133 const DeclSpec &DS = D.getDeclSpec();
1138 if (DS.getStorageClassSpec() != DeclSpec::SCS_unspecified)
9393 if (D.getDeclSpec().getStorageClassSpec() == DeclSpec::SCS_typedef) {
9398 != DeclSpec::SCS_unspecified) {
tools/clang/lib/Sema/SemaTemplateVariadic.cpp 836 const DeclSpec &DS = D.getDeclSpec();
tools/clang/lib/Sema/SemaType.cpp 231 DeclSpec &spec = getMutableDeclSpec();
326 DeclSpec &getMutableDeclSpec() const {
774 static void diagnoseAndRemoveTypeQualifiers(Sema &S, const DeclSpec &DS,
781 typedef std::pair<DeclSpec::TQ, SourceLocation> QualLoc;
782 for (QualLoc Qual : {QualLoc(DeclSpec::TQ_const, DS.getConstSpecLoc()),
783 QualLoc(DeclSpec::TQ_restrict, DS.getRestrictSpecLoc()),
784 QualLoc(DeclSpec::TQ_volatile, DS.getVolatileSpecLoc()),
785 QualLoc(DeclSpec::TQ_atomic, DS.getAtomicSpecLoc())}) {
792 << DeclSpec::getSpecifierName(Qual.first) << TypeSoFar
822 const DeclSpec &DS = declarator.getDeclSpec();
1266 DeclSpec &DS = declarator.getMutableDeclSpec();
1275 case DeclSpec::TST_void:
1278 case DeclSpec::TST_char:
1279 if (DS.getTypeSpecSign() == DeclSpec::TSS_unspecified)
1281 else if (DS.getTypeSpecSign() == DeclSpec::TSS_signed)
1289 case DeclSpec::TST_wchar:
1290 if (DS.getTypeSpecSign() == DeclSpec::TSS_unspecified)
1292 else if (DS.getTypeSpecSign() == DeclSpec::TSS_signed) {
1306 case DeclSpec::TST_char8:
1311 case DeclSpec::TST_char16:
1316 case DeclSpec::TST_char32:
1321 case DeclSpec::TST_unspecified:
1380 case DeclSpec::TST_int: {
1381 if (DS.getTypeSpecSign() != DeclSpec::TSS_unsigned) {
1383 case DeclSpec::TSW_unspecified: Result = Context.IntTy; break;
1384 case DeclSpec::TSW_short: Result = Context.ShortTy; break;
1385 case DeclSpec::TSW_long: Result = Context.LongTy; break;
1386 case DeclSpec::TSW_longlong:
1402 case DeclSpec::TSW_unspecified: Result = Context.UnsignedIntTy; break;
1403 case DeclSpec::TSW_short: Result = Context.UnsignedShortTy; break;
1404 case DeclSpec::TSW_long: Result = Context.UnsignedLongTy; break;
1405 case DeclSpec::TSW_longlong:
1422 case DeclSpec::TST_accum: {
1424 case DeclSpec::TSW_short:
1427 case DeclSpec::TSW_unspecified:
1430 case DeclSpec::TSW_long:
1433 case DeclSpec::TSW_longlong:
1437 if (DS.getTypeSpecSign() == DeclSpec::TSS_unsigned)
1445 case DeclSpec::TST_fract: {
1447 case DeclSpec::TSW_short:
1450 case DeclSpec::TSW_unspecified:
1453 case DeclSpec::TSW_long:
1456 case DeclSpec::TSW_longlong:
1460 if (DS.getTypeSpecSign() == DeclSpec::TSS_unsigned)
1468 case DeclSpec::TST_int128:
1473 if (DS.getTypeSpecSign() == DeclSpec::TSS_unsigned)
1478 case DeclSpec::TST_float16:
1488 case DeclSpec::TST_half: Result = Context.HalfTy; break;
1489 case DeclSpec::TST_float: Result = Context.FloatTy; break;
1490 case DeclSpec::TST_double:
1491 if (DS.getTypeSpecWidth() == DeclSpec::TSW_long)
1496 case DeclSpec::TST_float128:
1503 case DeclSpec::TST_bool: Result = Context.BoolTy; break; // _Bool or bool
1505 case DeclSpec::TST_decimal32: // _Decimal32
1506 case DeclSpec::TST_decimal64: // _Decimal64
1507 case DeclSpec::TST_decimal128: // _Decimal128
1512 case DeclSpec::TST_class:
1513 case DeclSpec::TST_enum:
1514 case DeclSpec::TST_union:
1515 case DeclSpec::TST_struct:
1516 case DeclSpec::TST_interface: {
1541 case DeclSpec::TST_typename: {
1553 case DeclSpec::TST_typeofType:
1563 case DeclSpec::TST_typeofExpr: {
1574 case DeclSpec::TST_decltype: {
1585 case DeclSpec::TST_underlyingType:
1597 case DeclSpec::TST_auto:
1601 case DeclSpec::TST_auto_type:
1605 case DeclSpec::TST_decltype_auto:
1610 case DeclSpec::TST_unknown_anytype:
1614 case DeclSpec::TST_atomic:
1642 case DeclSpec::TST_error:
1652 bool IsFixedPointType = DS.getTypeSpecType() == DeclSpec::TST_accum ||
1653 DS.getTypeSpecType() == DeclSpec::TST_fract;
1662 if (DS.getTypeSpecComplex() == DeclSpec::TSC_complex) {
1678 if (DS.getTypeSpecComplex() == DeclSpec::TSC_imaginary)
1705 S, DS, TypeQuals, Result, DeclSpec::TQ_const | DeclSpec::TQ_volatile,
1705 S, DS, TypeQuals, Result, DeclSpec::TQ_const | DeclSpec::TQ_volatile,
1724 DeclSpec::TQ_const | DeclSpec::TQ_volatile | DeclSpec::TQ_atomic,
1724 DeclSpec::TQ_const | DeclSpec::TQ_volatile | DeclSpec::TQ_atomic,
1724 DeclSpec::TQ_const | DeclSpec::TQ_volatile | DeclSpec::TQ_atomic,
1733 if (TypeQuals & DeclSpec::TQ_const && Result.isConstQualified()) {
1738 if (TypeQuals & DeclSpec::TQ_volatile && Result.isVolatileQualified()) {
1768 Qualifiers Qs, const DeclSpec *DS) {
1815 unsigned CVRAU, const DeclSpec *DS) {
1822 ~(DeclSpec::TQ_const | DeclSpec::TQ_volatile | DeclSpec::TQ_atomic);
1822 ~(DeclSpec::TQ_const | DeclSpec::TQ_volatile | DeclSpec::TQ_atomic);
1822 ~(DeclSpec::TQ_const | DeclSpec::TQ_volatile | DeclSpec::TQ_atomic);
1826 unsigned CVR = CVRAU & ~(DeclSpec::TQ_atomic | DeclSpec::TQ_unaligned);
1826 unsigned CVR = CVRAU & ~(DeclSpec::TQ_atomic | DeclSpec::TQ_unaligned);
1836 if (CVRAU & DeclSpec::TQ_atomic && !T->isAtomicType()) {
1854 Q.setUnaligned(CVRAU & DeclSpec::TQ_unaligned);
2796 { "const", DeclSpec::TQ_const, ConstQualLoc },
2797 { "volatile", DeclSpec::TQ_volatile, VolatileQualLoc },
2798 { "restrict", DeclSpec::TQ_restrict, RestrictQualLoc },
2799 { "__unaligned", DeclSpec::TQ_unaligned, UnalignedQualLoc },
2800 { "_Atomic", DeclSpec::TQ_atomic, AtomicQualLoc }
2874 unsigned AtomicQual = RetTy->isAtomicType() ? DeclSpec::TQ_atomic : 0;
3009 if (D.getDeclSpec().getStorageClassSpec() == DeclSpec::SCS_static ||
3042 D.getDeclSpec().getParsedSpecifiers() == DeclSpec::PQ_TypeSpecifier)
3090 if (D.getDeclSpec().getStorageClassSpec() == DeclSpec::SCS_typedef)
3249 != DeclSpec::SCS_unspecified)
3339 D.getDeclSpec().getParsedSpecifiers() == DeclSpec::PQ_TypeSpecifier &&
3499 D.getDeclSpec().getStorageClassSpec() != DeclSpec::SCS_typedef &&
4030 D.getDeclSpec().getStorageClassSpec() == DeclSpec::SCS_typedef ||
4410 DeclType.Cls.TypeQuals |= DeclSpec::TQ_const;
4560 D.getDeclSpec().getTypeSpecType() == DeclSpec::TST_auto
5124 D.getDeclSpec().getStorageClassSpec() != DeclSpec::SCS_static) &&
5422 const DeclSpec &DS;
5426 const DeclSpec &DS)
5561 if (DS.getTypeSpecType() == DeclSpec::TST_atomic) {
7422 D.getDeclSpec().getStorageClassSpec() != DeclSpec::SCS_static)) ||
7429 (D.getDeclSpec().getStorageClassSpec() == DeclSpec::SCS_typedef &&
7485 if (D.getDeclSpec().getStorageClassSpec() == DeclSpec::SCS_static ||
7486 D.getDeclSpec().getStorageClassSpec() == DeclSpec::SCS_extern) {