sksl support for buffer blocks
Bug: skia:
Change-Id: Ic2cabaf2c7fb23cec7863f2b6152bbed133e0886
Reviewed-on: https://skia-review.googlesource.com/14947
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
diff --git a/src/sksl/SkSLParser.cpp b/src/sksl/SkSLParser.cpp
index ae9d990..0f5b974 100644
--- a/src/sksl/SkSLParser.cpp
+++ b/src/sksl/SkSLParser.cpp
@@ -12,8 +12,8 @@
#define register
#include "disable_flex_warnings.h"
#include "lex.sksl.c"
-static_assert(YY_FLEX_MAJOR_VERSION * 100 + YY_FLEX_MINOR_VERSION * 10 +
- YY_FLEX_SUBMINOR_VERSION >= 261,
+static_assert(YY_FLEX_MAJOR_VERSION * 10000 + YY_FLEX_MINOR_VERSION * 100 +
+ YY_FLEX_SUBMINOR_VERSION >= 20601,
"we require Flex 2.6.1 or better for security reasons");
#undef register
#ifdef __clang__
@@ -655,7 +655,7 @@
}
/* layout? (UNIFORM | CONST | IN | OUT | INOUT | LOWP | MEDIUMP | HIGHP | FLAT | NOPERSPECTIVE |
- READONLY | WRITEONLY | COHERENT | VOLATILE | RESTRICT)* */
+ READONLY | WRITEONLY | COHERENT | VOLATILE | RESTRICT | BUFFER)* */
Modifiers Parser::modifiers() {
Layout layout = this->layout();
int flags = 0;
@@ -723,6 +723,10 @@
this->nextToken();
flags |= Modifiers::kRestrict_Flag;
break;
+ case Token::BUFFER:
+ this->nextToken();
+ flags |= Modifiers::kBuffer_Flag;
+ break;
case Token::HASSIDEEFFECTS:
this->nextToken();
flags |= Modifiers::kHasSideEffects_Flag;