Mesa (master): glsl: Merge "candidates are: " message to the previous line.

Kenneth Graunke kwg at kemper.freedesktop.org
Sun Dec 1 23:35:23 UTC 2013


Module: Mesa
Branch: master
Commit: e04a97ff23f6e0568c3c21cec8849c6c3fd2077f
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=e04a97ff23f6e0568c3c21cec8849c6c3fd2077f

Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Sat Nov 23 11:55:03 2013 -0800

glsl: Merge "candidates are: " message to the previous line.

Previously, when we hit a "no matching function" error, it looked like:

0:0(0): error: no matching function for call to `cos()'
0:0(0): error: candidates are: float cos(float)
0:0(0): error:                vec2 cos(vec2)
0:0(0): error:                vec3 cos(vec3)
0:0(0): error:                vec4 cos(vec4)

Now it looks like:

0:0(0): error: no matching function for call to `cos()'; candidates are:
0:0(0): error:    float cos(float)
0:0(0): error:    vec2 cos(vec2)
0:0(0): error:    vec3 cos(vec3)
0:0(0): error:    vec4 cos(vec4)

This is not really any worse and removes the need for the prefix variable.
It will also help with the next commit's refactoring.

Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
Reviewed-by: Chris Forbes <chrisf at ijw.co.nz>
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

---

 src/glsl/ast_function.cpp |   10 ++++------
 1 files changed, 4 insertions(+), 6 deletions(-)

diff --git a/src/glsl/ast_function.cpp b/src/glsl/ast_function.cpp
index 82456ad..6def25a 100644
--- a/src/glsl/ast_function.cpp
+++ b/src/glsl/ast_function.cpp
@@ -432,11 +432,11 @@ no_matching_function_error(const char *name,
 			   _mesa_glsl_parse_state *state)
 {
    char *str = prototype_string(NULL, name, actual_parameters);
-   _mesa_glsl_error(loc, state, "no matching function for call to `%s'", str);
+   _mesa_glsl_error(loc, state,
+                    "no matching function for call to `%s'; candidates are:",
+                    str);
    ralloc_free(str);
 
-   const char *prefix = "candidates are: ";
-
    for (int i = -1; i < (int) state->num_builtins_to_link; i++) {
       glsl_symbol_table *syms = i >= 0 ? state->builtins_to_link[i]->symbols
 				       : state->symbols;
@@ -451,10 +451,8 @@ no_matching_function_error(const char *name,
             continue;
 
 	 str = prototype_string(sig->return_type, f->name, &sig->parameters);
-	 _mesa_glsl_error(loc, state, "%s%s", prefix, str);
+	 _mesa_glsl_error(loc, state, "   %s", str);
 	 ralloc_free(str);
-
-	 prefix = "                ";
       }
    }
 }




More information about the mesa-commit mailing list