summaryrefslogtreecommitdiffstats
path: root/src/glsl/ir_function_can_inline.cpp
diff options
context:
space:
mode:
authorKenneth Graunke <kenneth@whitecape.org>2010-11-25 00:09:43 -0800
committerKenneth Graunke <kenneth@whitecape.org>2010-11-25 01:19:53 -0800
commite8a24c65bc06a2a098c05728df0da1e5ed61b1de (patch)
tree5e33de528419a03a98b5e017b957495b27e7373f /src/glsl/ir_function_can_inline.cpp
parent2cc79acc1ab5cdaadc427526a146c2c27ee0f906 (diff)
downloadexternal_mesa3d-e8a24c65bc06a2a098c05728df0da1e5ed61b1de.zip
external_mesa3d-e8a24c65bc06a2a098c05728df0da1e5ed61b1de.tar.gz
external_mesa3d-e8a24c65bc06a2a098c05728df0da1e5ed61b1de.tar.bz2
glsl: Don't inline function prototypes.
Currently, the standalone compiler tries to do function inlining before linking shaders (including linking against the built-in functions). This resulted in the built-in function _prototypes_ being inlined rather than the actual function definition. This is only known to fix a bug in the standalone compiler; most programs should be unaffected. Still, it seems like a good idea. NOTE: This is a candidate for the 7.9 branch.
Diffstat (limited to 'src/glsl/ir_function_can_inline.cpp')
-rw-r--r--src/glsl/ir_function_can_inline.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/glsl/ir_function_can_inline.cpp b/src/glsl/ir_function_can_inline.cpp
index f29f277..c367c30 100644
--- a/src/glsl/ir_function_can_inline.cpp
+++ b/src/glsl/ir_function_can_inline.cpp
@@ -60,6 +60,8 @@ can_inline(ir_call *call)
{
ir_function_can_inline_visitor v;
const ir_function_signature *callee = call->get_callee();
+ if (!callee->is_defined)
+ return false;
v.run((exec_list *) &callee->body);