Austin Group AI-2005-01-05 Part 2 - XSH Changes Austin-247 Page 1 of 1 Submitted by Andrew Josey, The Open Group. February 24, 2005 This is part of the action ACTION AI-2005-01-05: AJ to prepare draft document on impact of C99 TC2 on POSIX. Status: OPEN The ISO C99 TC2 document can be freely obtained from: http://webstore.ansi.org/ansidocstore/find.asp?find_spec=9899 XSH Changes -- reference against the 2004 Edition. @ Page 866 Line 28228 Section perror Comment [ISO C TC2 #67] Problem: ISO C TC2 #67 Action: Remove the text from the perror() page in XSH6 that says "The perror() function shall not change the orientation of the standard error stream." @ Page 416 Line 13588 Section fprintf Comment [ISO C TC2 #68] Problem: ISO C TC2 #68 Action: Change from: g, G The double argument shall be converted in the style f or e (or in the style F or E in the case of a G conversion specifier), with the precision specifying the number of significant digits. If an explicit precision is zero, it shall be taken as 1. The style used depends on the value converted; style e (or E ) shall be used only if the exponent resulting from such a conversion is less than -4 or greater than or equal to the precision. Trailing zeros shall be removed from the fractional portion of the result; a radix character shall appear only if it is followed by a digit or a '#' flag is present. To: g, G The double argument representing a floating-point number shall be converted in the style f or e (or in the style F or E in the case of a G conversion specifier), depending on the value converted and the precision. Let P equal the precision if non-zero, 6 if the precision is omitted, or 1 if the precision is zero. Then, if a conversion with style E would have an exponent of X: - if P > X >= -4, the conversion shall be with style f (or F) and precision P - (X+1) . - otherwise, the conversion shall be with style e (or E) and precision P - 1 . Finally, unless the # flag is used, any trailing zeros shall be removed from the fractional portion of the result and the decimal-point character shall be removed if there is no fractional portion remaining. @ Page 608 Lines 20039-41 Section ilogb Comment [ISO C TC2 #48] Problem: ISO C TC2 #48 7.12.6.5p2 Action: Remove the XSI highlighting. Also, remove the XSI highlighting from line 20048 about the argument being zero, NaN or Inf. Remove the XSI highlighting from lines 20050 to 20053. Reason: A domain error is now one of the C99 required actions. @ Page 608 Lines 20042-45 Section ilogb Comment(?) [ISO C TC2 #49] Problem: ISO C TC2 #49 7.12.6.5p2 Action: None. Reason: Requiring specific return values for "overflow" is unspecified by C99, so is still an XSI extension @ Page 726 Line 24033 Section logb Comment [ISO C TC2 #50] Problem: ISO C TC2 #50 7.12.6.11p2 Action: None (it should have been an MX shading!). Reason: The pole error is now allowed by C99. @ Page 983 Lines 31424-27 Section pow Comment [ISO C TC2 #51] Problem: ISO C TC2 #51 7.12.7.4p2 Action: Remove the MX shading. Also, remove the MX shading on lines 31437 to 31441. Reason: pow(zero,negative) can now be a range error in C99 in the general case. @ Page 1535 Lines 47779-80 Section tgamma Comment [ISO C TC2 #52] Problem: ISO C TC2 #52 7.12.8.4p2 Action: Remove the MX shading. Also remove the MX shading on lines 47790 to 47794. Reason: tgamma(0) is now allowed to be a range error in C99. @ Page 703 Lines 23263-69 Section llrint Comment [ISO C TC2 #53] Problem: ISO C TC2 #53 7.12.9.5p2 Action: Remove the MX shading. Also remove the MX shading on lines 23272 to 23277. Reason: A domain error for too large results is now allowed by C99. @ Page 732 Lines 24155-61 Section lrint Comment [ISO C TC2 #53] Problem: ISO C TC2 #53 7.12.9.5p2 Action: Remove the MX shading. Also remove the MX shading on lines 24164 to 24169. Reason: A domain error for too large results is now allowed by C99. @ Page 705 Lines 23315-21 Section llround Comment [ISO C TC2 #54] Problem: ISO C TC2 #54 7.12.9.7p2 Action: Remove the MX shading. Also remove the MX shading on lines 23324 to 23329. Reason: A domain error for too large results is now allowed by C99. @ Page 734 Lines 24207-13 Section lround Comment [ISO C TC2 #54] Problem: ISO C TC2 #54 7.12.9.7p2 Action: Remove the MX shading. Also remove the MX shading on lines 24216 to 24221. Reason: A domain error for too large results is now allowed by C99. @ Page 1225 Lines 38477-78 Section remainder Comment [ISO C TC2 #55] Problem: ISO C TC2 #55 7.12.10.2p3 Action: Remove the MX shading for 'y is 0'. Also remove the MX shading for 'or the y argument is +/-0' in line 38481. Reason: remainder(x,zero) is now allowed to be a domain error by C99. @ Page 1230 Lines 38586-87 Section remquo Comment [ISO C TC2 #56] Problem: ISO C TC2 #56 7.12.10.3p3 Action: Remove the MX shading for 'y is 0'. Also remove the MX shading for 'or the y argument is +/-0' in line 38590. Add to line 38587: The value stored in the object pointed to by /quo/ is unspecified. Reason: remquo(x,zero,quo) is now allowed to be a domain error by C99. @ Pages 387 Lines 12516-20 Section fma Comment [ISO C TC2 #57] Problem: ISO C TC2 #57 7.12.13.1p2 Action: Remove the MX shading. Also remove the MX shading on lines 12527-31. Reason: A range error is now allowed by C99. @ Page 608 Lines 20050-53 Section ilogb Comment [ISO C TC2 #79] Problem: ISO C TC2 #79 F.9.3.5p1 Action: None. Reason: Lines 20042-45 already discuss return value for "overflow". Line 20052 already discusses 'invalid' exception. @ Page 839 Lines 27391-93 Section nexttoward Comment [ISO C TC2 #80] Problem: ISO C TC2 #80 F.9.8.4p1 Action: None. Reason: XSH already has the nextafter requirements on nexttoward.