Section 12.4 has the following definitions of 'true' and 'false' conditions: "If the cond_predicate expression evaluates to true (that is, has a nonzero known value), the first statement shall be executed. If it evaluates to false (that is, has a zero value or the value is x or z), the first statement shall not execute." These descriptions are incorrect. We corrected them for the conditional operator (?:) in 1364-2005, but missed this place. See old 1364 issue 403 (http://boyd.com/1364_btf/report/full_pr/403.html). Section 16.3 (Immediate Assertions) has the same mistake: "The expression is nontemporal and is interpreted the same way as an expression in the condition of a procedural if statement. In other words, if the expression evaluates to X, Z, or 0, then it is interpreted as being false, and the assertion is said to fail. Otherwise, the expression is interpreted as being true, and the assertion is said to pass." The difference is where some of the bits are X/Z and some are 0/1. The value is known but also not completely unknown. The value is not quite X/Z, but not completely 0s and 1s. What is known is that if any of the bits is 1, then the value is definitely non-zero. In this case, the condition is true, even though the value is not quite known. On the other hand, if the known bits are all 0, then the condition is false, even though its value is not quite 0, X, or Z. This is Mantis 1974. Shalom Shalom Bresticker Intel Jerusalem LAD DA +972 2 589-6852 +972 54 721-1033 -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean.Received on Tue Aug 14 21:55:22 2007
This archive was generated by hypermail 2.1.8 : Tue Aug 14 2007 - 21:55:50 PDT