Summary: result type of AndAndExp and OrOrExp deduced incorrectly
AssignedTo: [EMAIL PROTECTED]
ReportedBy: [EMAIL PROTECTED]
The spec says that "The result type of an OrOrExpression is bool, unless the
right operand has type void, when the result is type void."
However, in AndAndExp and OrOrExp::semantic, it says:
if (e1->type->ty == Tvoid)
type = Type::tvoid;
The second seems to be a typo and shoud say e2->type->ty. Thanks to wilsonk,
who found the bug that resulted from this in LDC and also provided the fix.