Summary: result type of AndAndExp and OrOrExp deduced incorrectly
           Product: D
           Version: 1.035
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Keywords: patch
          Severity: normal
          Priority: P2
         Component: DMD
        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.


Reply via email to