[Mesa-dev] [PATCH 3/6] glsl: Merge "candidates are: " message to the previous line.

Kenneth Graunke kenneth at whitecape.org
Sat Nov 23 13:43:12 PST 2013


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 sin(float)
0:0(0): error:                vec2 sin(vec2)
0:0(0): error:                vec3 sin(vec3)
0:0(0): error:                vec4 sin(vec4)

Now it looks like:

0:0(0): error: no matching function for call to `cos()'; candidates are:
0:0(0): error:    float sin(float)
0:0(0): error:    vec2 sin(vec2)
0:0(0): error:    vec3 sin(vec3)
0:0(0): error:    vec4 sin(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>
---
 src/glsl/ast_function.cpp | 10 ++++------
 1 file 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 = "                ";
       }
    }
 }
-- 
1.8.4.4



More information about the mesa-dev mailing list