summaryrefslogtreecommitdiffstats
path: root/src/glsl
diff options
context:
space:
mode:
authorKenneth Graunke <[email protected]>2010-09-04 01:05:51 -0700
committerKenneth Graunke <[email protected]>2010-09-04 02:19:37 -0700
commita71b46a8ad344a86de2b13fe0c283ac2036c5f76 (patch)
tree770af269767a42af45516a7406abce8fb50bc7cf /src/glsl
parenta7dc8081b6e20fd05f99608aa0349a1eb75d914b (diff)
ir_reader: Track the current function and report it in error messages.
Diffstat (limited to 'src/glsl')
-rw-r--r--src/glsl/ir_reader.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/glsl/ir_reader.cpp b/src/glsl/ir_reader.cpp
index e57e03c3078..41bfc8a0860 100644
--- a/src/glsl/ir_reader.cpp
+++ b/src/glsl/ir_reader.cpp
@@ -94,6 +94,10 @@ ir_read_error(_mesa_glsl_parse_state *state, s_expression *expr,
state->error = true;
+ if (state->current_function != NULL)
+ state->info_log = talloc_asprintf_append(state->info_log,
+ "In function %s:\n",
+ state->current_function->function_name());
state->info_log = talloc_strdup_append(state->info_log, "error: ");
va_start(ap, fmt);
@@ -310,7 +314,9 @@ read_function_sig(_mesa_glsl_parse_state *st, ir_function *f, s_list *list,
ir_read_error(st, list, "function %s redefined", f->name);
return;
}
+ st->current_function = sig;
read_instructions(st, &sig->body, body_list, NULL);
+ st->current_function = NULL;
sig->is_defined = true;
}