<html>
<head>
<base href="https://bugs.freedesktop.org/" />
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW - Segfault loading War Thunder"
href="https://bugs.freedesktop.org/show_bug.cgi?id=92850#c46">Comment # 46</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW - Segfault loading War Thunder"
href="https://bugs.freedesktop.org/show_bug.cgi?id=92850">bug 92850</a>
from <span class="vcard"><a class="email" href="mailto:haro41@gmx.de" title="haro41@gmx.de">haro41@gmx.de</a>
</span></b>
<pre>here is the code from ir.h where it fails:
/**
* Determine the number of operands used by an expression
*/
static unsigned int get_num_operands(ir_expression_operation);
/**
* Determine the number of operands used by an expression
*/
unsigned int get_num_operands() const
{
return (this->operation == ir_quadop_vector)
? this->type->vector_elements : get_num_operands(operation);
}
Is it strange enough to fail if compiled inline in this code below?
for (operand = 0; operand < ir->get_num_operands(); operand++) {
this->result.file = PROGRAM_UNDEFINED;
ir->operands[operand]->accept(this);
if (this->result.file == PROGRAM_UNDEFINED) {
printf("Failed to get tree for expression operand:\n");
ir->operands[operand]->print();
printf("\n");
exit(1);
}
op[operand] = this->result;
/* Matrix expression operands should have been broken down to vector
* operations already.
*/
assert(!ir->operands[operand]->type->is_matrix());
}</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the QA Contact for the bug.</li>
<li>You are the assignee for the bug.</li>
</ul>
</body>
</html>