summaryrefslogtreecommitdiff
path: root/glcpp
diff options
context:
space:
mode:
Diffstat (limited to 'glcpp')
-rw-r--r--glcpp/glcpp.h1
-rw-r--r--glcpp/pp.c3
2 files changed, 3 insertions, 1 deletions
diff --git a/glcpp/glcpp.h b/glcpp/glcpp.h
index e67469be2e..8167a481d5 100644
--- a/glcpp/glcpp.h
+++ b/glcpp/glcpp.h
@@ -155,6 +155,7 @@ struct glcpp_parser {
token_node_t *lex_from_node;
char *output;
char *info_log;
+ int error;
};
glcpp_parser_t *
diff --git a/glcpp/pp.c b/glcpp/pp.c
index f8a7c2ea4d..846d35506f 100644
--- a/glcpp/pp.c
+++ b/glcpp/pp.c
@@ -26,6 +26,7 @@
void
glcpp_error (YYLTYPE *locp, glcpp_parser_t *parser, const char *fmt, ...)
{
+ parser->error = 1;
parser->info_log = talloc_asprintf_append(parser->info_log,
"%u:%u(%u): "
"preprocessor error: ",
@@ -48,13 +49,13 @@ preprocess(void *talloc_ctx, const char **shader, size_t *shader_len)
glcpp_parser_parse (parser);
- errors = parser->info_log[0] != '\0';
printf("%s", parser->info_log);
talloc_steal(talloc_ctx, parser->output);
*shader = parser->output;
*shader_len = strlen(parser->output);
+ errors = parser->error;
glcpp_parser_destroy (parser);
return errors;
}