OSDN Git Service

glcpp: Track the actual version instead of just the version_resolved flag
authorIan Romanick <ian.d.romanick@intel.com>
Tue, 9 Aug 2016 21:31:49 +0000 (14:31 -0700)
committerEmil Velikov <emil.l.velikov@gmail.com>
Thu, 1 Sep 2016 09:06:24 +0000 (10:06 +0100)
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Timothy Arceri <timothy.arceri@collabora.com>
Cc: mesa-stable@lists.freedesktop.org
(cherry picked from commit eda6349346616f3a45ca2d03e2c1a3da956df6b3)
[Emil Velikov: resolve trivial conflicts]
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Conflicts:
src/compiler/glsl/glcpp/glcpp-parse.y

src/compiler/glsl/glcpp/glcpp-parse.y
src/compiler/glsl/glcpp/glcpp.h

index 4022727..bdd48f6 100644 (file)
@@ -396,13 +396,13 @@ control_line_success:
                _glcpp_parser_skip_stack_pop (parser, & @1);
        } NEWLINE
 |      HASH_TOKEN VERSION_TOKEN integer_constant NEWLINE {
-               if (parser->version_resolved) {
+               if (parser->version != 0) {
                        glcpp_error(& @1, parser, "#version must appear on the first line");
                }
                _glcpp_parser_handle_version_declaration(parser, $3, NULL, true);
        }
 |      HASH_TOKEN VERSION_TOKEN integer_constant IDENTIFIER NEWLINE {
-               if (parser->version_resolved) {
+               if (parser->version != 0) {
                        glcpp_error(& @1, parser, "#version must appear on the first line");
                }
                _glcpp_parser_handle_version_declaration(parser, $3, $4, true);
@@ -1345,7 +1345,7 @@ glcpp_parser_create(const struct gl_extensions *extensions, gl_api api)
 
    parser->extensions = extensions;
    parser->api = api;
-   parser->version_resolved = false;
+   parser->version = 0;
 
    parser->has_new_line_number = 0;
    parser->new_line_number = 1;
@@ -2281,10 +2281,10 @@ _glcpp_parser_handle_version_declaration(glcpp_parser_t *parser, intmax_t versio
 {
    const struct gl_extensions *extensions = parser->extensions;
 
-   if (parser->version_resolved)
+   if (parser->version != 0)
       return;
 
-   parser->version_resolved = true;
+   parser->version = version;
 
    add_builtin_define (parser, "__VERSION__", version);
 
index d87e6b7..06f3521 100644 (file)
@@ -196,7 +196,7 @@ struct glcpp_parser {
        int error;
        const struct gl_extensions *extensions;
        gl_api api;
-       bool version_resolved;
+       unsigned version;
        bool has_new_line_number;
        int new_line_number;
        bool has_new_source_number;