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.
This commit is contained in:
Kenneth Graunke 2010-08-30 20:42:19 -07:00
parent d3fa92584b
commit 2619b1c96f

View file

@ -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);