Lines Matching defs:DS

58   DeclSpec DS(AttrFactory);
60 DS.addAttributes(*Attrs);
61 ParseSpecifierQualifierList(DS, AS, DSC);
63 *OwnedType = DS.isTypeSpecOwned() ? DS.getRepAsDecl() : nullptr;
68 for (ParsedAttr &AL : DS.getAttributes()) {
74 Attrs->takeOneFrom(DS.getAttributes(), AL);
78 Declarator DeclaratorInfo(DS, ParsedAttributesView::none(), Context);
1972 // This function moves attributes that should apply to the type off DS to Attrs.
1974 DeclSpec &DS, TagUseKind TUK) {
1980 for (ParsedAttr &AL : DS.getAttributes()) {
1988 DS.getAttributes().remove(AL);
2098 ParsingDeclSpec DS(*this);
2099 DS.takeAttributesFrom(DeclSpecAttrs);
2103 ParseDeclarationSpecifiers(DS, TemplateInfo, AS_none, DSContext);
2107 if (DS.hasTagDefinition() &&
2108 DiagnoseMissingSemiAfterTagDefinition(DS, AS_none, DSContext))
2119 getCurScope(), AS_none, DS, ParsedAttributesView::none(), AnonRecord);
2121 DS.complete(TheDecl);
2129 if (DS.hasTagDefinition())
2130 Actions.ActOnDefinedDeclarationSpecifier(DS.getRepAsDecl());
2133 DS.SetRangeStart(*DeclSpecStart);
2135 return ParseDeclGroup(DS, Context, DeclAttrs, TemplateInfo, &DeclEnd, FRI);
2289 Parser::DeclGroupPtrTy Parser::ParseDeclGroup(ParsingDeclSpec &DS,
2301 ParsingDeclarator D(*this, DS, LocalAttrs, Context);
2344 bool Fixit = !DS.setFunctionSpecNoreturn(Loc, PrevSpec, DiagID);
2386 if (DS.getStorageClassSpec() == DeclSpec::SCS_typedef) {
2390 Diag(DS.getStorageClassSpecLoc(),
2392 << FixItHint::CreateRemoval(DS.getStorageClassSpecLoc());
2393 DS.ClearStorageClassSpecs();
2511 return Actions.FinalizeDeclaratorGroup(getCurScope(), DS, ThisDecl);
2599 return Actions.FinalizeDeclaratorGroup(getCurScope(), DS, DeclsInGroup);
2916 DeclSpec &DS, ImplicitTypenameContext AllowImplicitTypename,
2922 ParseDeclarationSpecifiers(DS, TemplateInfo, AS, DSC, nullptr,
2926 unsigned Specs = DS.getParsedSpecifiers();
2927 if (isTypeSpecifier(DSC) && !DS.hasTypeSpecifier()) {
2929 DS.SetTypeSpecError();
2930 } else if (Specs == DeclSpec::PQ_None && !DS.hasAttributes()) {
2932 if (!DS.hasTypeSpecifier())
2933 DS.SetTypeSpecError();
2938 if (DS.getStorageClassSpecLoc().isValid())
2939 Diag(DS.getStorageClassSpecLoc(),diag::err_typename_invalid_storageclass);
2941 Diag(DS.getThreadStorageClassSpecLoc(),
2943 DS.ClearStorageClassSpecs();
2948 if (DS.isInlineSpecified())
2949 Diag(DS.getInlineSpecLoc(), diag::err_typename_invalid_functionspec);
2950 if (DS.isVirtualSpecified())
2951 Diag(DS.getVirtualSpecLoc(), diag::err_typename_invalid_functionspec);
2952 if (DS.hasExplicitSpecifier())
2953 Diag(DS.getExplicitSpecLoc(), diag::err_typename_invalid_functionspec);
2954 if (DS.isNoreturnSpecified())
2955 Diag(DS.getNoreturnSpecLoc(), diag::err_typename_invalid_functionspec);
2956 DS.ClearFunctionSpecs();
2960 if (DS.hasConstexprSpecifier() && DSC != DeclSpecContext::DSC_condition) {
2961 Diag(DS.getConstexprSpecLoc(), diag::err_typename_invalid_constexpr)
2962 << static_cast<int>(DS.getConstexprSpecifier());
2963 DS.ClearConstexprSpec();
3000 bool Parser::ParseImplicitInt(DeclSpec &DS, CXXScopeSpec *SS,
3019 assert(!DS.hasTypeSpecifier() && "Type specifier checked above");
3036 if (getLangOpts().OpenCLCPlusPlus && DS.isTypeSpecPipe())
3040 DS.getStorageClassSpec() == DeclSpec::SCS_auto) {
3058 DS.SetTypeSpecType(DeclSpec::TST_typename, Loc, PrevSpec, DiagID, T,
3060 DS.SetRangeEnd(Tok.getLocation());
3109 ParseEnumSpecifier(Loc, DS, TemplateInfo, AS,
3112 ParseClassSpecifier(TagKind, Loc, DS, TemplateInfo, AS,
3195 DS.SetTypeSpecType(DeclSpec::TST_typename, Loc, PrevSpec, DiagID, T,
3197 DS.SetRangeEnd(Tok.getLocation());
3209 DS.SetTypeSpecError();
3210 DS.SetRangeEnd(Tok.getLocation());
3445 Parser::DiagnoseMissingSemiAfterTagDefinition(DeclSpec &DS, AccessSpecifier AS,
3448 assert(DS.hasTagDefinition() && "shouldn't call this");
3531 Diag(PP.getLocForEndOfToken(DS.getRepAsDecl()->getEndLoc()),
3533 << DeclSpec::getSpecifierName(DS.getTypeSpecType(), PPol) << tok::semi;
3542 DS.ClearTypeSpecType();
3544 ParseDeclarationSpecifiers(DS, NotATemplate, AS, DSContext, LateAttrs);
3576 DeclSpec &DS, ParsedTemplateInfo &TemplateInfo, AccessSpecifier AS,
3579 if (DS.getSourceRange().isInvalid()) {
3583 DS.SetRangeStart(Tok.getLocation());
3584 DS.SetRangeEnd(SourceLocation());
3619 DS.getStorageClassSpec() == clang::DeclSpec::SCS_typedef &&
3620 !DS.hasTypeSpecifier() && GetLookAheadToken(1).is(tok::less))
3634 isInvalid = DS.SetTypeSpecType(ImageTypeSpec, Loc, PrevSpec, DiagID, Policy);
3680 DS.takeAttributesFrom(attrs);
3685 DS.Finish(Actions, Policy);
3700 ParseAlignmentSpecifier(DS.getAttributes());
3723 if (DS.hasTypeSpecifier()) {
3732 (DSContext == DeclSpecContext::DSC_class && DS.isFriendSpecified());
3736 getCurScope(), DS, AllowNonIdentifiers, AllowNestedNameSpecifiers);
3761 if (!DS.hasTypeSpecifier())
3762 DS.SetTypeSpecError();
3770 if (DS.hasTypeSpecifier() || DS.isTypeAltiVecVector())
3789 DS.SetTypeSpecError();
3810 DS.isFriendSpecified())) {
3818 DS.getTypeSpecScope() = SS;
3827 DS.getTypeSpecScope() = SS;
3837 DS.getTypeSpecScope() = SS;
3840 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_typename,
3845 DS.SetRangeEnd(Tok.getAnnotationEndLoc());
3853 DS.getTypeSpecScope() = SS;
3871 DS.isFriendSpecified(),
3904 if (ParseImplicitInt(DS, &SS, TemplateInfo, AS, DSContext, Attrs)) {
3914 DS.getTypeSpecScope() = SS;
3917 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_typename, Loc, PrevSpec,
3922 DS.SetRangeEnd(Tok.getLocation());
3931 if (DS.hasTypeSpecifier() && DS.hasTagDefinition())
3935 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_typename, Loc, PrevSpec,
3940 DS.SetRangeEnd(Tok.getAnnotationEndLoc());
3954 if (DS.getTypeSpecType() == TST_bool &&
3955 DS.getTypeQualifiers() == DeclSpec::TQ_const &&
3956 DS.getStorageClassSpec() == DeclSpec::SCS_static)
3970 if (DS.hasTypeSpecifier())
4015 DS.SetTypeSpecError();
4024 if (TryAltiVecToken(DS, Loc, PrevSpec, DiagID, isInvalid))
4029 if (DS.isTypeAltiVecVector())
4036 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_typename, Loc, PrevSpec,
4041 DS.SetRangeEnd(Loc);
4052 DS.isFriendSpecified()))
4068 if (ParseImplicitInt(DS, nullptr, TemplateInfo, AS, DSContext, Attrs)) {
4090 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_typename, Loc, PrevSpec,
4095 DS.SetRangeEnd(Tok.getLocation());
4107 DS.UpdateTypeRep(NewTypeRep.get());
4108 DS.SetRangeEnd(NewEndLoc);
4122 DS.SetTypeSpecError();
4143 isInvalid = DS.SetTypeSpecType(TST_auto, Loc, PrevSpec, DiagID,
4173 DS.setTypeArgumentRange(Tracker.getRange());
4176 isInvalid = DS.SetTypeSpecType(TST_decltype_auto, Loc, PrevSpec,
4179 isInvalid = DS.SetTypeSpecType(TST_auto, AutoLoc, PrevSpec, DiagID,
4199 DS.isFriendSpecified()))
4212 ParseAttributes(PAKM_GNU | PAKM_Declspec, DS.getAttributes(), LateAttrs);
4217 isInvalid = DS.setFunctionSpecForceInline(Loc, PrevSpec, DiagID);
4220 DS.getAttributes().addNew(AttrName, AttrNameLoc, nullptr, AttrNameLoc,
4226 isInvalid = DS.SetTypeQual(DeclSpec::TQ_unaligned, Loc, PrevSpec, DiagID,
4241 ParseMicrosoftTypeAttributes(DS.getAttributes());
4245 ParseWebAssemblyFuncrefTypeAttribute(DS.getAttributes());
4250 ParseBorlandTypeAttributes(DS.getAttributes());
4255 ParseOpenCLKernelAttributes(DS.getAttributes());
4260 ParseCUDAFunctionAttributes(DS.getAttributes());
4268 ParseNullabilityTypeSpecifiers(DS.getAttributes());
4273 DS.getAttributes().addNew(Tok.getIdentifierInfo(), Loc, nullptr, Loc,
4280 isInvalid = DS.SetStorageClassSpec(Actions, DeclSpec::SCS_typedef, Loc,
4285 if (DS.getThreadStorageClassSpec() == DeclSpec::TSCS___thread)
4287 isInvalid = DS.SetStorageClassSpec(Actions, DeclSpec::SCS_extern, Loc,
4292 isInvalid = DS.SetStorageClassSpec(Actions, DeclSpec::SCS_private_extern,
4297 if (DS.getThreadStorageClassSpec() == DeclSpec::TSCS___thread)
4299 isInvalid = DS.SetStorageClassSpec(Actions, DeclSpec::SCS_static, Loc,
4306 isInvalid = DS.SetStorageClassSpec(Actions, DeclSpec::SCS_auto, Loc,
4310 << FixItHint::CreateRemoval(DS.getStorageClassSpecLoc());
4312 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_auto, Loc, PrevSpec,
4315 isInvalid = DS.SetStorageClassSpec(Actions, DeclSpec::SCS_auto, Loc,
4321 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_auto_type, Loc, PrevSpec,
4325 isInvalid = DS.SetStorageClassSpec(Actions, DeclSpec::SCS_register, Loc,
4330 isInvalid = DS.SetStorageClassSpec(Actions, DeclSpec::SCS_mutable, Loc,
4335 isInvalid = DS.SetStorageClassSpecThread(DeclSpec::TSCS___thread, Loc,
4347 isInvalid = DS.SetStorageClassSpecThread(
4355 isInvalid = DS.SetStorageClassSpecThread(DeclSpec::TSCS__Thread_local,
4362 isInvalid = DS.setFunctionSpecInline(Loc, PrevSpec, DiagID);
4374 isInvalid = DS.setFunctionSpecVirtual(Loc, PrevSpec, DiagID);
4409 isInvalid = DS.setFunctionSpecExplicit(ExplicitLoc, PrevSpec, DiagID,
4415 isInvalid = DS.setFunctionSpecNoreturn(Loc, PrevSpec, DiagID);
4421 isInvalid = DS.SetFriendSpec(Loc, PrevSpec, DiagID);
4434 isInvalid = DS.setModulePrivateSpec(Loc, PrevSpec, DiagID);
4441 isInvalid = DS.SetConstexprSpec(ConstexprSpecKind::Constexpr, Loc,
4445 isInvalid = DS.SetConstexprSpec(ConstexprSpecKind::Consteval, Loc,
4449 isInvalid = DS.SetConstexprSpec(ConstexprSpecKind::Constinit, Loc,
4455 isInvalid = DS.SetTypeSpecWidth(TypeSpecifierWidth::Short, Loc, PrevSpec,
4459 if (DS.getTypeSpecWidth() != TypeSpecifierWidth::Long)
4460 isInvalid = DS.SetTypeSpecWidth(TypeSpecifierWidth::Long, Loc, PrevSpec,
4463 isInvalid = DS.SetTypeSpecWidth(TypeSpecifierWidth::LongLong, Loc,
4467 isInvalid = DS.SetTypeSpecWidth(TypeSpecifierWidth::LongLong, Loc,
4472 DS.SetTypeSpecSign(TypeSpecifierSign::Signed, Loc, PrevSpec, DiagID);
4475 isInvalid = DS.SetTypeSpecSign(TypeSpecifierSign::Unsigned, Loc, PrevSpec,
4481 isInvalid = DS.SetTypeSpecComplex(DeclSpec::TSC_complex, Loc, PrevSpec,
4487 isInvalid = DS.SetTypeSpecComplex(DeclSpec::TSC_imaginary, Loc, PrevSpec,
4491 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_void, Loc, PrevSpec,
4495 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_char, Loc, PrevSpec,
4499 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_int, Loc, PrevSpec,
4508 isInvalid = DS.SetBitIntType(Loc, ER.get(), PrevSpec, DiagID, Policy);
4513 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_int128, Loc, PrevSpec,
4517 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_half, Loc, PrevSpec,
4521 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_BFloat16, Loc, PrevSpec,
4525 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_float, Loc, PrevSpec,
4529 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_double, Loc, PrevSpec,
4533 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_float16, Loc, PrevSpec,
4540 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_accum, Loc, PrevSpec, DiagID,
4547 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_fract, Loc, PrevSpec, DiagID,
4554 isInvalid = DS.SetTypeSpecSat(Loc, PrevSpec, DiagID);
4557 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_float128, Loc, PrevSpec,
4561 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_ibm128, Loc, PrevSpec,
4565 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_wchar, Loc, PrevSpec,
4569 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_char8, Loc, PrevSpec,
4573 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_char16, Loc, PrevSpec,
4577 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_char32, Loc, PrevSpec,
4589 DS.getTypeSpecType() != DeclSpec::TST_unspecified &&
4590 DS.getStorageClassSpec() == DeclSpec::SCS_typedef) {
4597 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_bool, Loc, PrevSpec,
4602 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_decimal32, Loc, PrevSpec,
4606 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_decimal64, Loc, PrevSpec,
4610 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_decimal128, Loc, PrevSpec,
4614 isInvalid = DS.SetTypeAltiVecVector(true, Loc, PrevSpec, DiagID, Policy);
4617 isInvalid = DS.SetTypeAltiVecPixel(true, Loc, PrevSpec, DiagID, Policy);
4620 isInvalid = DS.SetTypeAltiVecBool(true, Loc, PrevSpec, DiagID, Policy);
4635 isInvalid = DS.SetTypePipe(true, Loc, PrevSpec, DiagID, Policy);
4647 isInvalid = DS.SetTypeSpecType(TST_unknown_anytype, Loc,
4663 ParseClassSpecifier(Kind, Loc, DS, TemplateInfo, AS,
4678 ParseEnumSpecifier(Loc, DS, TemplateInfo, AS, DSContext);
4683 isInvalid = DS.SetTypeQual(DeclSpec::TQ_const, Loc, PrevSpec, DiagID,
4687 isInvalid = DS.SetTypeQual(DeclSpec::TQ_volatile, Loc, PrevSpec, DiagID,
4691 isInvalid = DS.SetTypeQual(DeclSpec::TQ_restrict, Loc, PrevSpec, DiagID,
4698 DS.SetTypeSpecError();
4708 ParseTypeofSpecifier(DS);
4712 ParseDecltypeSpecifier(DS);
4716 ParsePackIndexingType(DS);
4740 if (!MaybeParseTypeTransformTypeSpecifier(DS))
4751 ParseAtomicSpecifier(DS);
4754 isInvalid = DS.SetTypeQual(DeclSpec::TQ_atomic, Loc, PrevSpec, DiagID,
4785 ParseOpenCLQualifiers(DS.getAttributes());
4793 ParseHLSLQualifiers(DS.getAttributes());
4800 if (DS.hasTypeSpecifier() || !getLangOpts().ObjC)
4807 if (DS.SetTypeSpecType(DeclSpec::TST_typename, StartLoc, StartLoc,
4812 DS.SetRangeEnd(EndLoc);
4814 DS.SetTypeSpecError();
4822 DS.SetRangeEnd(ConsumedEnd.isValid() ? ConsumedEnd : Tok.getLocation());
4834 SourceRange(Loc, DS.getEndLoc()));
4850 static void DiagnoseCountAttributedTypeInUnnamedAnon(ParsingDeclSpec &DS,
4853 if (DS.getTypeSpecType() != DeclSpec::TST_struct)
4856 auto *RD = dyn_cast<RecordDecl>(DS.getRepAsDecl());
4904 ParsingDeclSpec &DS,
4912 return ParseStructDeclaration(DS, FieldsCallback, LateFieldAttrs);
4920 ParseSpecifierQualifierList(DS);
4932 getCurScope(), AS_none, DS, ParsedAttributesView::none(), AnonRecord);
4934 DS.complete(TheDecl);
4942 ParsingFieldDeclarator DeclaratorInfo(*this, DS, Attrs);
4966 DiagnoseCountAttributedTypeInUnnamedAnon(DS, *this);
5149 ParsingDeclSpec DS(*this);
5150 ParseStructDeclaration(DS, CFieldCallback, &LateFieldAttrs);
5234 void Parser::ParseEnumSpecifier(SourceLocation StartLoc, DeclSpec &DS,
5242 DS.SetTypeSpecError(); // Needed by ActOnUsingDeclaration.
5283 DS.isEmpty() && isOpaqueEnumDeclarationContext(DSC);
5289 CXXScopeSpec &SS = DS.getTypeSpecScope();
5302 DS.SetTypeSpecError();
5319 DS.SetTypeSpecError();
5359 // 2) As the sole constituent of a complete declaration -- when DS is empty
5390 DeclSpec DS(AttrFactory);
5393 ParseSpecifierQualifierList(DS, ImplicitTypenameContext::No, AS,
5395 Declarator DeclaratorInfo(DS, ParsedAttributesView::none(),
5432 if (DS.isFriendSpecified()) {
5434 << SourceRange(DS.getFriendSpecLoc());
5453 TUK = DS.isFriendSpecified() ? TagUseKind::Friend : TagUseKind::Declaration;
5485 DS.SetTypeSpecError();
5499 DS.SetTypeSpecError();
5526 stripTypeAttributesOffDeclSpec(attrs, DS, TUK);
5541 Name, NameLoc, attrs, AS, DS.getModulePrivateSpecLoc(),
5556 if (DS.SetTypeSpecType(DeclSpec::TST_enum, StartLoc,
5568 DS.SetTypeSpecError();
5576 DS.SetTypeSpecError();
5580 if (DS.SetTypeSpecType(DeclSpec::TST_typename, StartLoc,
5597 DS.SetTypeSpecError();
5606 DS.SetTypeSpecError();
5611 if (DS.SetTypeSpecType(DeclSpec::TST_enum, StartLoc,
6407 DeclSpec &DS, unsigned AttrReqs, bool AtomicAllowed,
6414 DS.takeAttributesFrom(Attrs);
6431 Actions.CodeCompletion().CodeCompleteTypeQualifiers(DS);
6435 isInvalid = DS.SetTypeQual(DeclSpec::TQ_const , Loc, PrevSpec, DiagID,
6439 isInvalid = DS.SetTypeQual(DeclSpec::TQ_volatile, Loc, PrevSpec, DiagID,
6443 isInvalid = DS.SetTypeQual(DeclSpec::TQ_restrict, Loc, PrevSpec, DiagID,
6450 isInvalid = DS.SetTypeQual(DeclSpec::TQ_atomic, Loc, PrevSpec, DiagID,
6467 ParseOpenCLQualifiers(DS.getAttributes());
6475 ParseHLSLQualifiers(DS.getAttributes());
6479 isInvalid = DS.SetTypeQual(DeclSpec::TQ_unaligned, Loc, PrevSpec, DiagID,
6486 IdentifierRequired && DS.isEmpty() && NextToken().is(tok::semi)) {
6502 ParseMicrosoftTypeAttributes(DS.getAttributes());
6508 ParseWebAssemblyFuncrefTypeAttribute(DS.getAttributes());
6514 ParseBorlandTypeAttributes(DS.getAttributes());
6524 ParseNullabilityTypeSpecifiers(DS.getAttributes());
6529 DS.getAttributes().addNew(Tok.getIdentifierInfo(), Loc, nullptr, Loc,
6543 ParseGNUAttributes(DS.getAttributes());
6552 DS.Finish(Actions, Actions.getASTContext().getPrintingPolicy());
6554 DS.SetRangeEnd(EndLoc);
6680 DeclSpec DS(AttrFactory);
6681 ParseTypeQualifierListOpt(DS);
6682 D.ExtendWithDeclSpec(DS);
6692 SS, DS.getTypeQualifiers(), StarLoc, DS.getEndLoc()),
6693 std::move(DS.getAttributes()),
6702 DeclSpec DS(AttrFactory);
6703 ParseTypeQualifierListOpt(DS);
6706 DeclaratorChunk::getPipe(DS.getTypeQualifiers(), DS.getPipeLoc()),
6707 std::move(DS.getAttributes()), SourceLocation());
6724 DeclSpec DS(AttrFactory);
6732 ParseTypeQualifierListOpt(DS, Reqs, true, !D.mayOmitIdentifier());
6733 D.ExtendWithDeclSpec(DS);
6741 DS.getTypeQualifiers(), Loc, DS.getConstSpecLoc(),
6742 DS.getVolatileSpecLoc(), DS.getRestrictSpecLoc(),
6743 DS.getAtomicSpecLoc(), DS.getUnalignedSpecLoc()),
6744 std::move(DS.getAttributes()), SourceLocation());
6748 DeclaratorChunk::getBlockPointer(DS.getTypeQualifiers(), Loc),
6749 std::move(DS.getAttributes()), SourceLocation());
6752 DeclSpec DS(AttrFactory);
6762 ParseTypeQualifierListOpt(DS);
6763 D.ExtendWithDeclSpec(DS);
6768 if (DS.getTypeQualifiers() != DeclSpec::TQ_unspecified) {
6769 if (DS.getTypeQualifiers() & DeclSpec::TQ_const)
6770 Diag(DS.getConstSpecLoc(),
6772 if (DS.getTypeQualifiers() & DeclSpec::TQ_volatile)
6773 Diag(DS.getVolatileSpecLoc(),
6776 if (DS.getTypeQualifiers() & DeclSpec::TQ_atomic)
6777 Diag(DS.getAtomicSpecLoc(),
6803 D.AddTypeInfo(DeclaratorChunk::getReference(DS.getTypeQualifiers(), Loc,
6805 std::move(DS.getAttributes()), SourceLocation());
7429 const Declarator &D, const DeclSpec &DS,
7449 Qualifiers Q = Qualifiers::fromCVRUMask(DS.getTypeQualifiers());
7458 for (ParsedAttr &attr : DS.getAttributes()) {
7508 DeclSpec DS(AttrFactory);
7569 DS, AR_NoAttributesParsed,
7572 Actions.CodeCompletion().CodeCompleteFunctionQualifiers(DS, D);
7574 if (!DS.getSourceRange().getEnd().isInvalid()) {
7575 EndLoc = DS.getSourceRange().getEnd();
7583 InitCXXThisScopeForDeclaratorIfRelevant(D, DS, ThisScope);
7682 &DS),
7862 DeclSpec DS(AttrFactory);
7903 ParseDeclarationSpecifiers(DS, TemplateInfo, AS_none,
7907 DS.takeAttributesFrom(ArgDeclSpecAttrs);
7912 Declarator ParmDeclarator(DS, ArgDeclAttrs,
7926 MaybeParseHLSLAnnotations(DS.getAttributes());
7948 if (DS.isEmpty() && ParmDeclarator.getIdentifier() == nullptr &&
8146 DeclSpec DS(AttrFactory);
8147 ParseTypeQualifierListOpt(DS, AR_CXX11AttributesParsed);
8203 MaybeParseCXX11Attributes(DS.getAttributes());
8207 DeclaratorChunk::getArray(DS.getTypeQualifiers(), StaticLoc.isValid(),
8210 std::move(DS.getAttributes()), T.getCloseLocation());
8314 void Parser::ParseTypeofSpecifier(DeclSpec &DS) {
8337 DS.setTypeArgumentRange(CastRange);
8341 DS.SetRangeEnd(Tok.getLocation());
8343 DS.SetRangeEnd(CastRange.getEnd());
8347 DS.SetTypeSpecError();
8354 if (DS.SetTypeSpecType(IsUnqual ? DeclSpec::TST_typeof_unqualType
8365 DS.SetTypeSpecError();
8372 DS.SetTypeSpecError();
8379 if (DS.SetTypeSpecType(IsUnqual ? DeclSpec::TST_typeof_unqualExpr
8390 void Parser::ParseAtomicSpecifier(DeclSpec &DS) {
8411 DS.setTypeArgumentRange(T.getRange());
8412 DS.SetRangeEnd(T.getCloseLocation());
8416 if (DS.SetTypeSpecType(DeclSpec::TST_atomic, StartLoc, PrevSpec,
8457 bool Parser::TryAltiVecTokenOutOfLine(DeclSpec &DS, SourceLocation Loc,
8477 isInvalid = DS.SetTypeAltiVecVector(true, Loc, PrevSpec, DiagID, Policy);
8481 isInvalid = DS.SetTypeAltiVecVector(true, Loc, PrevSpec, DiagID,Policy);
8487 DS.SetTypeAltiVecVector(true, Loc, PrevSpec, DiagID, Policy);
8495 DS.isTypeAltiVecVector()) {
8496 isInvalid = DS.SetTypeAltiVecPixel(true, Loc, PrevSpec, DiagID, Policy);
8499 DS.isTypeAltiVecVector()) {
8500 isInvalid = DS.SetTypeAltiVecBool(true, Loc, PrevSpec, DiagID, Policy);