<html>
<head>
<base href="https://bugs.freedesktop.org/" />
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW --- - Compiling of shader gets stuck in infinite loop"
href="https://bugs.freedesktop.org/show_bug.cgi?id=78468#c12">Comment # 12</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW --- - Compiling of shader gets stuck in infinite loop"
href="https://bugs.freedesktop.org/show_bug.cgi?id=78468">bug 78468</a>
from <span class="vcard"><a class="email" href="mailto:itoral@igalia.com" title="Iago Toral <itoral@igalia.com>"> <span class="fn">Iago Toral</span></a>
</span></b>
<pre>This fixes the problem for me:
diff --git a/src/glsl/ast_to_hir.cpp b/src/glsl/ast_to_hir.cpp
index 897505c..18ae9c4 100644
--- a/src/glsl/ast_to_hir.cpp
+++ b/src/glsl/ast_to_hir.cpp
@@ -1815,31 +1815,31 @@ ast_expression::do_hir(exec_list *instructions,
ir_rvalue *
ast_expression_statement::hir(exec_list *instructions,
struct _mesa_glsl_parse_state *state)
{
/* It is possible to have expression statements that don't have an
* expression. This is the solitary semicolon:
*
* for (i = 0; i < 5; i++)
* ;
*
* In this case the expression will be NULL. Test for NULL and don't do
* anything in that case.
*/
if (expression != NULL)
- expression->hir_no_rvalue(instructions, state);
+ expression->hir(instructions, state);
/* Statements do not have r-values.
*/
return NULL;
}
The bad commit assumes that we never need to compute rvalues for expression
statements, but it seems that we do... Maybe there is a problem somewhere else
and this should not be happening?</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the QA Contact for the bug.</li>
</ul>
</body>
</html>