Mesa (master): linker: Require an exact matching signature when looking for prototypes.

Kenneth Graunke kwg at kemper.freedesktop.org
Tue Aug 31 04:07:13 UTC 2010


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

Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Mon Aug 30 20:42:19 2010 -0700

linker: Require an exact matching signature when looking for prototypes.

Fixes piglit test glsl-override-builtin.  The linker incorrectly found
the prototype for the float signature, rather than adding a new
prototype with the int return type.  This caused ir_calls with type int
to have their callees set to the float signature, triggering an assert.

---

 src/glsl/link_functions.cpp |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/src/glsl/link_functions.cpp b/src/glsl/link_functions.cpp
index 6374573..78c8b48 100644
--- a/src/glsl/link_functions.cpp
+++ b/src/glsl/link_functions.cpp
@@ -111,7 +111,7 @@ public:
 	 f = new(linked) ir_function(name);
 
       ir_function_signature *linked_sig =
-	 f->matching_signature(&callee->parameters);
+	 f->exact_matching_signature(&callee->parameters);
       if (linked_sig == NULL) {
 	 linked_sig = new(linked) ir_function_signature(callee->return_type);
 	 f->add_signature(linked_sig);




More information about the mesa-commit mailing list