To: J3 J3/18-189 From: Malcolm Cohen Subject: Country comment GB-050 Date: 2018-June-12 1. Introduction The second paragraph of subclause 17.1 "Overview of IEEE arithmetic support" contains several mistakes and unnecessary verbiage. These should be fixed/deleted. 2. Response to GB-050 Accepted with modification. 3. Discussion of the comment The problems are as follows: (a) IEEE_SUPPORT_FLAG, and IEEE_SUPPORT_HALTING are incorrectly described as inquiry functions. There is no need to even mention their classification here. (b) In most places p2 is careful to say that support is within a scoping unit. For "Which other exceptions" that qualification is missing. (c) Three times, after saying something "shall be supported", it goes on to say that the corresponding support function "shall return true". This is unnecessary since that is what the function is already described as doing. 4. Additional changes (A) The word "may" is incorrect. Either "might" or "can" would be acceptable. (B) We variously say that a flag "is accessible", or "has access to". The wording "is accessible" is to be preferred. (C) The trailing "for the flag" on the last sentence conveys no information. It is unclear whether accessibility of IEEE_SUPPORT_HALTING requires that halting be supported a) for at least one flag, b) for all flags, c) for all supported exception flags. Option (c) is the most plausible, but this question would be better handled by defect processing. In the meantime, deleting the phrase that conveys no information is right. 5. Outstanding issues The very first sentence of p2 is complete nonsense (modules themselves are never "accessible", only entities within them). There are a number of plausible stories about what we intended. This has to be left to defect processing. 6. Edits to N2146 Page 443, 17.1 "Overview of IEEE arithmetic support", paragraph 2, After "Which other exceptions are supported" insert "in the scoping unit". Delete the first two instances of "inquiry" (in "the inquiry function IEEE_SUPPORT_FLAG" and "the inquiry function IEEE_SUPPORT_HALTING"). Change "may be influenced" to "can be influenced". Change "If a scoping unit has access to IEEE_UNDERFLOW_FLAG of IEEE_FEATURES" to "If IEEE_UNDERFLOW_FLAG is accessible" (we don't need to say "of IEEE_FEATURES" because we said this in the immediately-preceding sentence). Delete "and return true from IEEE_SUPPORT_FLAG(IEEE_UNDERFLOW, X)". Delete "and return true from the corresponding inquiry function". Delete "and return true from IEEE_SUPPORT_HALTING(FLAG) for the flag". This will make the whole paragraph read: "If IEEE_EXCEPTIONS or IEEE_ARITHMETIC is accessible in a scoping unit, the exceptions IEEE_OVERFLOW and IEEE_DIVIDE_BY_ZERO are supported in the scoping unit for all kinds of real and complex IEEE floating-point data. Which other exceptions are supported in the scoping unit can be determined by the function IEEE_SUPPORT_FLAG (17.11.51); whether control of halting is supported can be determined by the function IEEE_SUPPORT_HALTING. The extent of support of the other exceptions can be influenced by the accessibility of the named constants IEEE_INEXACT_FLAG, IEEE_INVALID_FLAG, and IEEE_UNDERFLOW_FLAG of the module IEEE_FEATURES. If IEEE_UNDERFLOW_FLAG is accessible, within the scoping unit the processor shall support underflow for at least one kind of real. Similarly, if IEEE_INEXACT_FLAG or IEEE_INVALID_FLAG is accessible, within the scoping unit the processor shall support the exception for at least one kind of real. If IEEE_HALTING is accessible, within the scoping unit the processor shall support control of halting." ===END===