glsl: Don't assert when the value returned by a function has no rvalue
authorIan Romanick <ian.d.romanick@intel.com>
Sun, 23 Jan 2011 01:47:05 +0000 (17:47 -0800)
committerIan Romanick <ian.d.romanick@intel.com>
Sun, 23 Jan 2011 02:04:40 +0000 (18:04 -0800)
commit2db46fe5f0145a6afff5b8edc2f00b8c734bb640
treec15c8cb53fe9f30f57be12552f9dc58e16b56b02
parent9d380f487a4f2628594821a4fed5fe587ce52031
glsl: Don't assert when the value returned by a function has no rvalue

The rvalue of the returned value can be NULL if the shader says
'return foo();' and foo() is a function that returns void.

Existing GLSL specs do *NOT* say that this is an error.  The type of
the return value is void.  If the return type of the function is also
void, then this should compile without error.  I expect that future
versions of the GLSL spec will fix this (wink, wink, nudge, nudge).

Fixes piglit test glsl-1.10/compiler/expressions/return-01.vert and
bugzilla #33308.

NOTE: This is a candidate for the 7.9 and 7.10 branches.
src/glsl/ast_to_hir.cpp