Home | History | Annotate | Download | only in Parse

Lines Matching refs:DeclSpec

48   DeclSpec DS(AttrFactory);
326 /// \brief Parses a single argument for a declspec, including the
349 /// \brief Determines whether a declspec is a "simple" one requiring no
370 /// \brief Attempts to parse a declspec which is not simple (one that takes
371 /// parameters). Will return false if we properly handled the declspec, or
372 /// true if it is an unknown declspec.
385 // The deprecated declspec has an optional single argument, so we will
394 // The property declspec is more complex in that it can take one or two
410 // We don't recognize this as a valid declspec, but instead of creating the
414 // attribute, we'd have to split the valid declspec spelling logic into
419 // the assumption that this unknown declspec has parameters.
433 assert(Tok.is(tok::kw___declspec) && "Not a declspec!");
441 // An empty declspec is perfectly legal and should not warn. Additionally,
442 // you can specify multiple attributes per declspec.
445 // else is a malformed declspec.
519 void Parser::ParseOpenCLQualifiers(DeclSpec &DS) {
1499 if (DS.getStorageClassSpec() == DeclSpec::SCS_typedef) {
1515 // prototype, and let the top-level code handle the erroneous declspec
1573 // declaration, these would be part of the declspec. In subsequent
1576 // short __attribute__((common)) var; -> declspec
1695 D.getDeclSpec().getTypeSpecType() == DeclSpec::TST_auto;
1817 void Parser::ParseSpecifierQualifierList(DeclSpec &DS, AccessSpecifier AS,
1824 // Validate declspec for type-name.
1830 } else if (Specs == DeclSpec::PQ_None && !DS.getNumProtocolQualifiers() &&
1838 if (Specs & DeclSpec::PQ_StorageClassSpecifier) {
1847 if (Specs & DeclSpec::PQ_FunctionSpecifier) {
1866 /// immediately follows the declspec. For example, these things are valid:
1878 /// This is not, because 'x' does not immediately follow the declspec (though
1890 /// identifier in a declspec (which normally terminates the decl spec) when
1891 /// the declspec has no type specifier. In this case, the declspec is either
1895 /// declspec is done being processed. If it recovers and thinks there may be
1896 /// other pieces of declspec after it, it returns true.
1898 bool Parser::ParseImplicitInt(DeclSpec &DS, CXXScopeSpec *SS,
1935 DS.getStorageClassSpec() == DeclSpec::SCS_auto) {
1953 case DeclSpec::TST_enum:
1955 case DeclSpec::TST_union:
1957 case DeclSpec::TST_struct:
1959 case DeclSpec::TST_interface:
1962 case DeclSpec::TST_class:
2048 DS.SetTypeSpecType(DeclSpec::TST_typename, Loc, PrevSpec, DiagID, T);
2185 void Parser::ParseDeclarationSpecifiers(DeclSpec &DS,
2220 // specifiers. First verify that DeclSpec's are consistent.
2353 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_typename,
2393 // If the referenced identifier is not a type, then this declspec is
2413 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_typename, Loc, PrevSpec,
2427 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_typename, Loc, PrevSpec,
2456 DS.getTypeQualifiers() == DeclSpec::TQ_const &&
2457 DS.getStorageClassSpec() == DeclSpec::SCS_static) {
2499 // If this is not a typedef name, don't parse it as part of the declspec,
2520 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_typename, Loc, PrevSpec,
2567 // Microsoft declspec support.
2577 // FIXME: This does not work correctly if it is set to be a declspec
2607 isInvalid = DS.SetStorageClassSpec(Actions, DeclSpec::SCS_typedef, Loc,
2613 isInvalid = DS.SetStorageClassSpec(Actions, DeclSpec::SCS_extern, Loc,
2617 isInvalid = DS.SetStorageClassSpec(Actions, DeclSpec::SCS_private_extern,
2623 isInvalid = DS.SetStorageClassSpec(Actions, DeclSpec::SCS_static, Loc,
2629 isInvalid = DS.SetStorageClassSpec(Actions, DeclSpec::SCS_auto, Loc,
2635 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_auto, Loc, PrevSpec,
2638 isInvalid = DS.SetStorageClassSpec(Actions, DeclSpec::SCS_auto, Loc,
2642 isInvalid = DS.SetStorageClassSpec(Actions, DeclSpec::SCS_register, Loc,
2646 isInvalid = DS.SetStorageClassSpec(Actions, DeclSpec::SCS_mutable, Loc,
2699 isInvalid = DS.SetTypeSpecWidth(DeclSpec::TSW_short, Loc, PrevSpec,
2703 if (DS.getTypeSpecWidth() != DeclSpec::TSW_long)
2704 isInvalid = DS.SetTypeSpecWidth(DeclSpec::TSW_long, Loc, PrevSpec,
2707 isInvalid = DS.SetTypeSpecWidth(DeclSpec::TSW_longlong, Loc, PrevSpec,
2711 isInvalid = DS.SetTypeSpecWidth(DeclSpec::TSW_longlong, Loc, PrevSpec,
2715 isInvalid = DS.SetTypeSpecSign(DeclSpec::TSS_signed, Loc, PrevSpec,
2719 isInvalid = DS.SetTypeSpecSign(DeclSpec::TSS_unsigned, Loc, PrevSpec,
2723 isInvalid = DS.SetTypeSpecComplex(DeclSpec::TSC_complex, Loc, PrevSpec,
2727 isInvalid = DS.SetTypeSpecComplex(DeclSpec::TSC_imaginary, Loc, PrevSpec,
2731 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_void, Loc, PrevSpec,
2735 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_char, Loc, PrevSpec,
2739 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_int, Loc, PrevSpec,
2743 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_int128, Loc, PrevSpec,
2747 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_half, Loc, PrevSpec,
2751 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_float, Loc, PrevSpec,
2755 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_double, Loc, PrevSpec,
2759 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_wchar, Loc, PrevSpec,
2763 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_char16, Loc, PrevSpec,
2767 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_char32, Loc, PrevSpec,
2773 DS.getTypeSpecType() != DeclSpec::TST_unspecified &&
2774 DS.getStorageClassSpec() == DeclSpec::SCS_typedef) {
2781 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_bool, Loc, PrevSpec,
2786 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_decimal32, Loc, PrevSpec,
2790 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_decimal64, Loc, PrevSpec,
2794 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_decimal128, Loc, PrevSpec,
2804 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_image1d_t, Loc,
2808 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_image1d_array_t, Loc,
2812 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_image1d_buffer_t, Loc,
2816 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_image2d_t, Loc,
2820 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_image2d_array_t, Loc,
2824 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_image3d_t, Loc,
2828 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_sampler_t, Loc,
2832 isInvalid = DS.SetTypeSpecType(DeclSpec::TST_event_t, Loc,
2872 isInvalid = DS.SetTypeQual(DeclSpec::TQ_const, Loc, PrevSpec, DiagID,
2876 isInvalid = DS.SetTypeQual(DeclSpec::TQ_volatile, Loc, PrevSpec, DiagID,
2880 isInvalid = DS.SetTypeQual(DeclSpec::TQ_restrict, Loc, PrevSpec, DiagID,
3191 void Parser::ParseEnumSpecifier(SourceLocation StartLoc, DeclSpec &DS,
3197 Actions.CodeCompleteTag(getCurScope(), DeclSpec::TST_enum);
3458 Decl *TagDecl = Actions.ActOnTag(getCurScope(), DeclSpec::TST_enum, TUK,
3473 TypeResult Type = Actions.ActOnDependentTag(getCurScope(), DeclSpec::TST_enum,
3481 if (DS.SetTypeSpecType(DeclSpec::TST_typename, StartLoc,
3504 if (DS.SetTypeSpecType(DeclSpec::TST_enum, StartLoc,
4100 void Parser::ParseTypeQualifierListOpt(DeclSpec &DS,
4124 isInvalid = DS.SetTypeQual(DeclSpec::TQ_const , Loc, PrevSpec, DiagID,
4128 isInvalid = DS.SetTypeQual(DeclSpec::TQ_volatile, Loc, PrevSpec, DiagID,
4132 isInvalid = DS.SetTypeQual(DeclSpec::TQ_restrict, Loc, PrevSpec, DiagID,
4178 // qualifiers. First verify that DeclSpec's are consistent.
4270 DeclSpec DS(AttrFactory);
4302 DeclSpec DS(AttrFactory);
4326 DeclSpec DS(AttrFactory);
4342 if (DS.getTypeQualifiers() != DeclSpec::TQ_unspecified) {
4343 if (DS.getTypeQualifiers() & DeclSpec::TQ_const)
4346 if (DS.getTypeQualifiers() & DeclSpec::TQ_volatile)
4759 DeclSpec DS(AttrFactory);
5033 DeclSpec DS(AttrFactory);
5221 DeclSpec DS(AttrFactory);
5289 void Parser::ParseTypeofSpecifier(DeclSpec &DS) {
5322 if (DS.SetTypeSpecType(DeclSpec::TST_typeofType, StartLoc, PrevSpec,
5344 if (DS.SetTypeSpecType(DeclSpec::TST_typeofExpr, StartLoc, PrevSpec,
5352 void Parser::ParseAtomicSpecifier(DeclSpec &DS) {
5379 if (DS.SetTypeSpecType(DeclSpec::TST_atomic, StartLoc, PrevSpec,
5413 bool Parser::TryAltiVecTokenOutOfLine(DeclSpec &DS, SourceLocation Loc,