reference, declarationdefinition
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) {