projects
/
mesa.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
e42ed1e
)
mesa: add missing type check for function calls
author
Brian Paul
<brian.paul@tungstengraphics.com>
Wed, 26 Nov 2008 16:35:26 +0000
(09:35 -0700)
committer
Brian Paul
<brianp@vmware.com>
Tue, 6 Jan 2009 16:03:23 +0000
(09:03 -0700)
(cherry picked from commit
001b1cbb0dacf76dd09cda56840c30226abd3534
)
src/mesa/shader/slang/slang_codegen.c
patch
|
blob
|
history
diff --git
a/src/mesa/shader/slang/slang_codegen.c
b/src/mesa/shader/slang/slang_codegen.c
index 958f9bd777a967a6d637517529ce01e07560037f..b821122663cca28252f0735c81da19d9eacb1772 100644
(file)
--- a/
src/mesa/shader/slang/slang_codegen.c
+++ b/
src/mesa/shader/slang/slang_codegen.c
@@
-2025,6
+2025,21
@@
_slang_gen_function_call_name(slang_assemble_ctx *A, const char *name,
return NULL;
}
+ /* type checking to be sure function's return type matches 'dest' type */
+ if (dest) {
+ slang_typeinfo t0;
+
+ slang_typeinfo_construct(&t0);
+ _slang_typeof_operation(A, dest, &t0);
+
+ if (!slang_type_specifier_equal(&t0.spec, &fun->header.type.specifier)) {
+ slang_info_log_error(A->log,
+ "Incompatible type returned by call to '%s'",
+ name);
+ return NULL;
+ }
+ }
+
n = _slang_gen_function_call(A, fun, oper, dest);
if (n && !n->Store && !dest