WG 14 Standing Document 3

List of issues not covered by DRs for C11

Doc No: WG 14 N 1972
Date: 2015-10-06
Project: JTC 1.22.20
Reply To: David Keaton
Convener, WG 14
CERT
848 N. Rainbow Blvd. #4499
Las Vegas, NV 89107
E-mail: [email protected]
Phone: +1 702 518 8192
Fax: +1 702 852 0248

This document contains a list of issues that could not be dealt with by a C11 Defect Report. Each should be reviewed when the time comes to start the process to republish the C Standard.

This document is not intended to indicate the direction WG 14 will take for the development of the C Standard, this is just a list of issues that were not addressed by the WG 14 Defect Report process.

  1. N 1730, DR 440
    To do as suggested in this defect report, distinguish whether the float, double, and long double types are IEC compliant or not, requires the addition of new feature test macros. This is a new feature, and is not allowed by the mechanism of the defect report process.
  2. N 1817, DR 463
    This is a request to align C with C++14, C++14 has defined the shifting of a bit into the sign bit, again this is a feature that can not be addressed by the defect report process. The following change was proposed in the defect report.
    6.5.7p4 should be modified to read:
    The result of E1 << E2 is E1 left-shifted E2 bit positions; vacated bits are filled with zeros. If E1 has an unsigned type, the value of the result is E1 x 2E2, reduced modulo one more than the maximum value representable in the result type. If E1 has a signed type and nonnegative value, and E1 x 2E2 is representable in the corresponding unsigned type of the result type, then that value, converted to the result type, is the resulting value; otherwise, the behavior is undefined.
  3. N 1793, N 1818, DR 451
    The issue about indeterminate values (wobbly bits) will possibly need to be clarified. Wobbly bits were not considered during the development of C11.
  4. N 1812, N 1874, DR 461
    The portion of this defect report that requests allowing const qualified objects in signal handlers is considered a new feature. The implications of the following suggested change from the defect report should be studied carefully before adopting any change.

    In section 7.14.1.1, modify the first sentence of paragraph 5 as indicated below:

    If the signal occurs other than as the result of calling the abort or raise function, the behavior is undefined if the signal handler refers toaccesses any non-const object with static or thread storage duration, or any non-const object with automatic storage duration whose lifetime started before the signal handler has been entered, that is not a lock-free atomic object other than by...

    In addition, make the corresponding change to section J.2 Undefined behavior.

  5. N 1736, DR 446
    This defect report requests a local change to a globally-used term. A comprehensive review of all uses would be required, which is outside the scope of this defect report.
  6. N 1865, DR 466
    This defect report requests a harmonization with C++, which is often grounds for making a change. However, this particular change would invalidate existing code and should not be done using the defect report process. The following change was proposed in the defect report.

    Align the C rules with those of C++ by adding a new paragraph to section 6.2.1 Scopes of identifiers as follows.

    Names declared in clause-1 of the for statement are local to the for statement and shall not be redeclared in a subsequent condition of that statement nor in the outermost block of the controlled statement.

  7. N 1736, DR 446
    This defect report requests a local change to a globally-used term. A comprehensive review of all uses would be required, which is outside the scope of this defect report.
  8. N 1899
    This proposal for integer width macros should be considered for adoption with the caveat that the widths suggested for 7.20.2.1 should be equal to N, not <= N.
  9. N 1910
    This proposal requests a new feature, _Alignof on incomplete array types, for harmonization with C++.
  10. N 1911
    The committee decided that the preprocessor behavior addressed in this document should be considered for potential unspecified behavior, rather than undefined behavior as suggested in the document.
  11. N 1923
    This is a proposal for a new feature, allowing qualified doubly-dimensioned array parameters to be compatible with unqualified arguments.
  12. N 1870, DR 467
    New feature request: consider adding to the standard the macros FLT_TRUE_MAX, DBL_TRUE_MAX, and LDBL_TRUE_MAX from this DR.