|
@@ -2753,6 +2753,30 @@ void Parser::ParseDeclarationSpecifiers(DeclSpec &DS,
|
|
|
case tok::kw___pixel:
|
|
|
isInvalid = DS.SetTypeAltiVecPixel(true, Loc, PrevSpec, DiagID);
|
|
|
break;
|
|
|
+ case tok::kw_image1d_t:
|
|
|
+ isInvalid = DS.SetTypeSpecType(DeclSpec::TST_image1d_t, Loc,
|
|
|
+ PrevSpec, DiagID);
|
|
|
+ break;
|
|
|
+ case tok::kw_image1d_array_t:
|
|
|
+ isInvalid = DS.SetTypeSpecType(DeclSpec::TST_image1d_array_t, Loc,
|
|
|
+ PrevSpec, DiagID);
|
|
|
+ break;
|
|
|
+ case tok::kw_image1d_buffer_t:
|
|
|
+ isInvalid = DS.SetTypeSpecType(DeclSpec::TST_image1d_buffer_t, Loc,
|
|
|
+ PrevSpec, DiagID);
|
|
|
+ break;
|
|
|
+ case tok::kw_image2d_t:
|
|
|
+ isInvalid = DS.SetTypeSpecType(DeclSpec::TST_image2d_t, Loc,
|
|
|
+ PrevSpec, DiagID);
|
|
|
+ break;
|
|
|
+ case tok::kw_image2d_array_t:
|
|
|
+ isInvalid = DS.SetTypeSpecType(DeclSpec::TST_image2d_array_t, Loc,
|
|
|
+ PrevSpec, DiagID);
|
|
|
+ break;
|
|
|
+ case tok::kw_image3d_t:
|
|
|
+ isInvalid = DS.SetTypeSpecType(DeclSpec::TST_image3d_t, Loc,
|
|
|
+ PrevSpec, DiagID);
|
|
|
+ break;
|
|
|
case tok::kw___unknown_anytype:
|
|
|
isInvalid = DS.SetTypeSpecType(TST_unknown_anytype, Loc,
|
|
|
PrevSpec, DiagID);
|
|
@@ -3596,6 +3620,14 @@ bool Parser::isKnownToBeTypeSpecifier(const Token &Tok) const {
|
|
|
case tok::kw__Decimal128:
|
|
|
case tok::kw___vector:
|
|
|
|
|
|
+ // OpenCL specific types:
|
|
|
+ case tok::kw_image1d_t:
|
|
|
+ case tok::kw_image1d_array_t:
|
|
|
+ case tok::kw_image1d_buffer_t:
|
|
|
+ case tok::kw_image2d_t:
|
|
|
+ case tok::kw_image2d_array_t:
|
|
|
+ case tok::kw_image3d_t:
|
|
|
+
|
|
|
// struct-or-union-specifier (C99) or class-specifier (C++)
|
|
|
case tok::kw_class:
|
|
|
case tok::kw_struct:
|
|
@@ -3668,6 +3700,14 @@ bool Parser::isTypeSpecifierQualifier() {
|
|
|
case tok::kw__Decimal128:
|
|
|
case tok::kw___vector:
|
|
|
|
|
|
+ // OpenCL specific types:
|
|
|
+ case tok::kw_image1d_t:
|
|
|
+ case tok::kw_image1d_array_t:
|
|
|
+ case tok::kw_image1d_buffer_t:
|
|
|
+ case tok::kw_image2d_t:
|
|
|
+ case tok::kw_image2d_array_t:
|
|
|
+ case tok::kw_image3d_t:
|
|
|
+
|
|
|
// struct-or-union-specifier (C99) or class-specifier (C++)
|
|
|
case tok::kw_class:
|
|
|
case tok::kw_struct:
|
|
@@ -3812,6 +3852,14 @@ bool Parser::isDeclarationSpecifier(bool DisambiguatingWithExpression) {
|
|
|
case tok::kw__Decimal128:
|
|
|
case tok::kw___vector:
|
|
|
|
|
|
+ // OpenCL specific types:
|
|
|
+ case tok::kw_image1d_t:
|
|
|
+ case tok::kw_image1d_array_t:
|
|
|
+ case tok::kw_image1d_buffer_t:
|
|
|
+ case tok::kw_image2d_t:
|
|
|
+ case tok::kw_image2d_array_t:
|
|
|
+ case tok::kw_image3d_t:
|
|
|
+
|
|
|
// struct-or-union-specifier (C99) or class-specifier (C++)
|
|
|
case tok::kw_class:
|
|
|
case tok::kw_struct:
|