ISO/ IEC JTC1/SC22/WG14 N865


                                Document number: WG14 N865 (J11/98-064)

Title:  Status of approved proposals for C9X, FCD (Pre-Portland)
Author: Douglas Walls
Date:   December 21, 1998

Below find the status of approved proposals for inclusion in C9X, i.e.
proposals at Stages 3-6, as applied to C9X FCD (WG14-N843/SC22-N2794).
The proposal numbers represent the last papers seen by the committee on
this proposal.  The dates represent the meeting date at which the
proposal was approved.  See the minutes of that meeting for full
details.

Status is also given on the Annexes, index and table of contents.

Proposals approved and already included in the C9X draft, stage 6:

  Annex A thru J have been updated.

  Table of Contents

  DR142 (06/97) Reservation of macro names
                 Words appear in the 6/97, London minutes

  DR156 (10/97) Defect Report 156 from N544
                 Approved as amended by the 10/97, Menlo Park minutes

  N401 (2/96)  <inttypes.h>

  N448 (10/95) Restricted pointers

  N472 (10/95) Designated initializers

  N505 (6/96)  Make qualifiers idempotent
                 Final words for this proposal appear in the 6/96,
                 Amsterdam meeting minutes, N615.

  N522 (2/96)  Tag compatibility

  N568 (10/96) Stringizing empty pp_token sequences

  N570 (2/96)  Empty arguments in macro replacement
                 N570 is result of editorial review committee, N548
                 was approved at 2/96 meeting prior to final wording

  N579 (10/96) Add to translation phase 4 "All preprocessing directives
                 are then deleted".  Final words for this change
                 appear in the 10/96 Toronto meeting minutes.

  N587 (02/97) Proposed wording for bool <stdbool.h>
                 Approved as amended by the 02/97, Kona minutes

  N590 (10/96) Translation Limits
                  Approved as amended by the 10/96 Toronto minutes.

  N593 (10/96) New Form of Pragma

  N595 (10/96) Floating Point C Extensions
                 Approved as amended by the 10/96 Toronto minutes.

  N596 (10/96) Complex C Extensions,  w/Imaginary types in an informative Annex
                 Approved as amended by N620, see 10/96 Toronto minutes.

  N599 (10/96) Restricted pointer library changes
                 Approved as amended by the 10/96 Toronto minutes.

  N601 (10/96) long long int
                 Approved as amended by the 10/96 Toronto minutes.

  N602 (10/96) <inttypes.h> strtoimax() & strtoumax() functions
                 Approved as amended by the 10/96 Toronto minutes.

  N611 (10/96) Addition of predefined identifier __func__
                 Approved as amended by the 10/96 Toronto minutes.

  N617 (10/96) Signed integer division
                 Approved as amended by the 10/96 Toronto minutes.
                 
  N629 (02/97) Type rules for decimal integer constants
                 Approved as amended by the 02/97, Kona minutes

  N631 (02/97) Standard Pragmas
                 Approved as amended by the 02/97, Kona minutes

  N634 (02/97) New Form of Pragma, Version 4
                 Approved as amended by the 02/97, Kona minutes

  N635 (02/97) Implicit int removal (old-style parameters)
                 Approved as amended by the 02/97, Kona minutes

  N636 (02/97) Implicit function declaration removal

  N638 (02/97) Floating-Point and Complex Arithmetic Enhancements
                 Approved items 1, 2, 4 as is.
                 Approved item 7 as amended by the 02/97, Kona minutes.

  N640 (02/97) Access to Objects
                 Approved as amended by the 02/97, Kona minutes
  
  N644 (02/97) Add // comments
                 Approved as amended by the 02/97, Kona minutes

  N645 (02/97) Alternative to sprintf
                 Approved as amended by the 02/97, Kona minutes

  N651 (02/97) C9X, Editorial use term "real-floating"
                 Approved as amended by the 02/97, Kona minutes
  
  N655 (02/97) N504 and N643 (C9X Draft 8)

  N657 (02/97) Floating-Point and Complex Arithmetic Enhancements
                 Approved item 9, 13 and 14 as is.
                 Approved item 6, 11 and 12 as amended by the
                   02/97, Kona minutes
                 
  N661 (02/97) Disallow implicit "int" in declarations

  N671 (06/97) va_copy
                 Approved as amended by the 06/97, London minutes

  N672 (06/97) reorder subclauses 6.1 and 6.2

  N673 (06/27) adjustments to phases of translation
                 Only changes for 5.1.1.2 approved as amended by the
                   06/97, London minutes

  N675 (06/97) DRs 77, 143, 144, 146, 147 and 149
                 Wording changes for DRs 144, 146, 147 & 149 approved as is
                 DR 77, approved as amended by the 06/97, London minutes

  N682 (06/97) Suggested edits for C9X Draft 9 section 6.5.3 (Restrict)
                 Approved as amended by the 06/97, London minutes

  N683 (06/97) Final Edits for incorporating VLAs into C9X
                 Approved as amended by the 06/97, London minutes

  N685 (06/97) Compatibility Issues with Union Members

  N686 (06/97) Obsolescent Features of the C standard
                 Delete 6.9.5, Array parameters from the obsolescent list in C9X

  N688 (06/97) namespace issues
                 Approved as amended by the 06/97, London minutes

  N691 (06/97) Representation of values
                 Approved as amended by the 06/97, London minutes

  N692 (06/97) Implicit int cleanup

  N693 (06/97) Type-Generic Math Functions

  N694 (06/97) FP & Complex Arithmetic Enhancements
                 Approved as amended by the 06/97, London minutes

  N695 (06/97) Grammar Start Symbol
                 Approved as amended by the 06/97, London minutes

  N696 (06/97) Standard Pragmas - Improved Wording
                 Approved as amended by the 06/97, London minutes

  N698 (06/97) Implementation Defined Integral Types
                 Approved as amended by the 06/97, London minutes

  N701 (06/97) vscanf
                 Approved as amended by the 06/97, London minutes

  N703 (06/97) Standards wording for ungetc
                 Approved as amended by the 06/97, London minutes

  N705 (06/97) Defect Reports since TC2 that promise some action in C9X
                 Approved DR 160 as is
                 Approved DR 145, 150, 155, 158 & 162 as amended by the 06/97,
                   London minutes

  N707 (06/97) Varargs for function-like macros

  N716 (06/97) Compound literals

  N717 (06/97) Extended Identifiers
                 Approved as amended by the 06/97, London minutes

  N721 (06/97) Unary * operator - a fix
                 Approved as amended by the 06/97, London minutes

  N722 (06/27) removing implicit int (from N692)  

  N723 (06/97) Changes to shift operators
                 Approved as amended by the 06/97, London minutes

  N724 (06/97) Minor alteration to representation of types

  N725 (10/97) Simplified integer conversion rules
                 Approved as amended by the 10/97, Menlo Park minutes

  N727 (10/97) Replace Uses of "Integral" by "Integer"

  N728 (06/97) scalbn

  N729 (06/97) Mode strings in fopen()

  N733 (06/97) New formats for strftime()
                 Approved as amended by the 06/97, London minutes

  N734 (06/97) Misc. FP Cleanup Items
                 Approved as amended by the 06/97, London minutes

  N735 (06/97) General Wording Issues
                 Approved as is Option b of item 1

  N736 (06/97) Preprocessor arithmetic
                 Approved as amended by the 06/97, London minutes

  N739 (06/97) General wording issues  (N676 updated)
                 Approved items 2,3,4,5,6A,6B,8,9A,10 & 14 as amended
                   by the 06/97, London minutes
  
  N740 (06/97) Mixing declarations and code
                 Approved as amended by the 06/97, London minutes

  N741 (06/97) Inlining Proposal
                 Approved as amended by the 06/97, London minutes

  N757 (10/97) Misc. FP cleanup items
                 Approved item 1 with words in the minutes for removing
                   scalb(), 10/97, Menlo Park minutes
                 Approved item 2 as amended by the 10/97, Menlo Park minutes

  N759 (10/97) Bug in Compound Literals
                 Approved as amended by the 10/97, Menlo Park minutes

  N760 (10/97) Editorial correction, for empty macro arguments

  N762 (10/97) Minor Changes to C9X
                 Approved items 5, 7, 14, 15, 17, 18, 20, & 24 as is
                 Approved items 8, 11, 13, 21 w/o 21.2.1, & 22 as amended
                   by the 10/97, Menlo Park minutes
                 Items 17 & 18 were superseded by changes in N789.

  N764 (10/97) Issues about time
                 Approved as amended by N781 and the 10/97, Menlo Park
                 minutes, i.e.
                   part A, B & G as is
                   part C & Fc amended (in minutes motion)
                   part E (as is from N781)
                 All items applied except for minor correction needed for
                   application of item G.

  N765 (10/97) Issues with representation of values
                 Approved items A as is
                 Approved items B & C as amended by the 10/97, Menlo
                   Park minutes

  N766 (10/97) Inlining Issues
                 Approved issues 1, 2, & nits for 6.5.4, paragraphs:
                   3 2nd choice, 7, 8 (spelling correction only), 9 (typo
                   only) & 10 as is
                 6.5.4 function specifiers paragraph 8 4th sentence
                   approved as amended by the 10/97, Menlo Park minutes
                 In 6.5.4, function specifiers delete paragraph 5 as per
                   the 10/97, Menlo Park minutes
                 Final issue (issue #3) approved with words replaced by
                   those in the 10/97, Menlo Park minutes

  N767 (10/97) Some General C9X Issues
                 Approved items 3, 5, 6 10, 12, 16 & 17 as is
                 Approved items 2, 4, 8, 11, 14 & 15 as amended by 10/97,
                   Menlo Park minutes
                 Approved move 6.5.2 para 3 to 6.5.5.2 Array declarators
                   after para 1, move 6.5.2.3 Tags example 4 to 6.5.5.2
                   Array declarators as per the 10/97, Menlo Park minutes

  N768 (10/97) Current C9X Tweak List
                 Approved items 1, 2, 4, 5, 7, 8, 10, 15 as is
                 Add items 6, 9, 11 to C9X as amended
                   by the 10/97, Menlo Park minutes

  N770 (10/97) Trigraphs and Universal Character Names
                 Approved as amended by the 10/97, Menlo Park minutes

  N772 (10/97) Header/Source file names

  N773 (10/97) Consistency and clarification
                 Approved items 2, 3, 4 option a, 7, 9, 10, 12, 15, 16,
                   17, 20 as is
                 Approved items 1, 11, 14, 19, 21 as amended by the 10/97,
                   Menlo Park minutes
                 All items applied, however application of item 9B as
                   passed causes miswording of 7.11p3 (Signal handling)

  N774 (10/97) Assorted minor substantive issues
                 Approved items 4, 6, 10, 13, 14, & 15 as is.
                 Approved items 1, 3, part of 5, 7, & 17 as amended by
                   the 10/97, Menlo Park minutes
                 Item 1 has not been applied correctly, the rest have
                   been applied correctly.

  N775 (10/97) Relationships between unsigned types
                 Approved as amended by the 10/97, Menlo Park minutes

  N776 (10/97) fseek & ungetc
                 Approved as amended by the 10/97, Menlo Park minutes

  N777 (10/97) File position indicator after fgetc failure
                 Approved as amended by the 10/97, Menlo Park minutes

  N780 (10/97) POSIX Alignment (Simonsen)
                 Approved changes to tolower(), toupper(), towlower(),
                   towupper(), and footnote for 7.5 Localization <locale.h>
                   as amended by the 10/97, Menlo Park minutes

  N782 (10/97) Cleanup of aggregate initialization

  N783 (10/97) Significant outstanding issues
                 Approved 6 as is.
                 Approved items 3, 7 & 13 as amended by the 10/97,
                   Menlo Park minutes
                 All items applied except item 13 missing last line of
                   a footnote

  N785 (10/97) Meaning of "definition"

  N786 (10/97) Japan comments on C9X draft 10
                 Approved as amended by the 10/97, Menlo Park minutes
                   1.1 Addressed in N672
                   1.2 Accept subpoints 1 as amended
                       Accept subpoints 3, 4, and 9 as is
                         subpoints 2, 6, 7 are done
                       Accept sub points 5 & 8, done along these lines by
                         Jones
                   1.3 Accepted subsumed by Jones paper
                   1.4 Accepted
                   1.5 Accepted as amended
                   2.1 Dropped by Japan
                   2.2 Dropped by Japan
                   3.1 Accepted along these lines
                   3.2 All cross references will be fixed
                   3.3 subpoint 1 is done
                       subpoint 2 will be done

  N787 (10/97) October 20-24, 1997, Menlo Park minutes
                 1. Approved changes to 6.6.6.4 and 6.7.1, minutes item 37
                 2. Approved during the walk-thru of the draft, minutes item 51
                    Words for if/else problem ~6.6.6.1
                    Changes to setvbuf function
                 3. Approved allowing concatenation of adjacent character
                    and wide character string literals, (from N788
                    discussion) minutes item 55
                 4. Approved adding float/hex constants to C9X as
                    recorded in the minutes, minutes item 69
                 5. Approved wording to define protection of the
                    <inttypes.h> macros so they do not expand for C++ as
                    recorded in the minutes (from N788 discussion),
                    minutes item 71
               
  N788 (10/97) Rewrite of C9x Subclause 7.4 <inttypes.h> (Gwyn)
                 Approved with words drafted via an editorial review
                   committee at 10/97, Menlo Park

  N789 (10/97) Changes to signal handling
                 Approved as amended, with _exit() subject to editorial
                   review and acceptance by an editorial review committee,
                   by the 10/97, Menlo Park minutes
                   NOTICE: Editorial review rejected adding _exit().

  N790 (10/97) The mean of "implementation-defined"
                 Approved items 6, 7 & 8 as is
                 Approved items 1 & 3 as amended by the 10/97, Menlo
                   Park minutes

  N791 (10/97) Solving the struct hack problem

  N792 (10/97) C9X and LIA-1 informative annex
                 Approved as amended by the 10/97, Menlo Park minutes

  N793 (10/97) New time functions
                 Applied except for minor tweek needed to number of types
                   in first paragraph of 7.16.1, Components of time.

  N804 (02/98) Editor's Report
                 Editorial changes discussed and accepted at 02/98 meeting,
                 as per unrecorded discussions

  N809 (02/98) Change keywords complex and imaginary to _Complex and
               _Imaginary

  N810 (02/98) Macro Replacement In Pragmas

  N812 (02/98) Minutes for Frisco Colorado 1998
                 Add <stdbool.h> to list of required std headers clause 4
                 Misc corrections to UCNs

  N815 (06/98) True boolean type
		 Approved with the editorial change that
		 users may undef and redef the macros bool, true, and
		 false.

  N822 (06/98) Formal model of sequence points
		 Approved as informative rather than normative.

  N823 (06/98) DR166 -- lvalue constraints
		 Approved as:
			An lvalue is an expression; it shall have an
			object type or an incomplete type other than
			void.  When an lvalue expression is evaluated,
			it shall designate an object.

  N824 (06/98) Improved inlining words.

  N825 (06/98) Problems with Undefined Behavior
		 Approved removing para 3 of 3.18 in CD1

  N826 (06/98) Floating-point items
		 Approved items 1, 2, 3 as is.
		 Changed item 4 to changing gamma to tgamma 

  N829 (06/98) Floating-point accuracy (DR 63)

  N833 (06/98) printf/scanf modifiers
		 Approved using z, t, and j (as suggested in discussion
		 point 2) with the addition of allowing the modifiers
		 with %n as well.

  N835 (06/98) Rvalue arrays
		 Approved with editorial changes

  UCNs (06/98) Extensive changes were made involving UCNs; the formal
		 model is now Plum's "model B" where UCNs and extended
		 source characters co-exist.  UCNs in character
		 constants and string literals are handled as escape
		 sequences.  The constraint in 6.10 reguarding a
		 non-required character as the first character of a
		 macro replacement was dropped.

  CD1 France Comments
       (06/98)   FR16 - Add __STDC_ISO_10646__ macro

  CD1 Denmark Comments
       (06/98) DK2, DK3, DK4, DK5
		 DK2 (int_curr_symbol different from currency_symbol)
		 DK3 (localeconv examples) approved with editorial
		   corrections to the table of member values.
		 DK4 ([pn]_sep_by_space) approved with editorial
		   corrections directly from Posix.
  		 DK5 (strftime conversions)
  		 DK6 (strftime O and E modifiers)

  CD1 UK Comments
       (06/98) UK005, UK010, UK011, UK013, UK017, UK028, UK061, UK062,
       UK074, UK077, UK099, UK131, UK140, UK168
		 UK0005 (#error)
		 UK0010 (_NO_LEAP_SECONDS)
		 UK0011 (_NO_LEAP_SECONDS and _LOCALTIME)
		 UK0013 (struct hack)
		 UK0017 (pointer comparison)
		 UK0028 (name limits vs UCNs) approved except that
		   short UCNs count as 6 (not 4) and long UCNs count as
		   10 (not 8); and that extended source characters are
		   counted like the corresponding UCN if there is one,
		   otherwise their count is unspecified.
		 UK0061 (non-int assert) approved except that the type
		   of the expression was changed from *int* to *_Bool*
		   (now that it's available) rather than using
		   /scalar/.
		 UK0062 (binary standard streams)
		 UK0074 (pointer to object)
		 UK0077 (jumps and VLAs)
		   solves mixing of decls/code used with VLAs
		 UK0099 (dropping off the end of main) approved just
		   the first part
		 UK0131 (fesetround/feholdexcept return values)
		 UK0140 (supported by conversion) approved as
		   DECIMAL_DIG moves from <math.h> to
		   <float.h> (and the mathematical definition of
		   FLT_DIG, which has apparently always been wrong, is
		   corrected), and other wording changes.
		 UK0168 (VLA sizes)

  CD1 US Comments
       (06/98) US011.13 (localtime returning NULL)

Proposals approved for inclusion into the C9X draft, stage 4:

  N845 (10/98) Minutes for Santa Cruz, October 1998 
	Future directions addtion on floating-point types
        strtod improvements regarding strings begining with a minus sign
	Japan issue to drop finite from f,F conversion specifier
	realloc rewording
	INFINITY and NAN macros do not need to be implementation-defined
	Remove Annex D
	Change cgamma to ctgamma
	Disallow VLAs in compound literals
	nextafterx changed to nexttoward

  N847 (10/98) Issues with CD2
	Individual items approved as detailed in the 10/98 meeting
	minutes N845

  N851 (10/98) inttypes.h and stdint.h
	Approved with minor editorial changes

  N852 (10/98) Editors report
	Approved as detailed in the 10/98 meeting minutes N845

  for loop wording (10/98)
	Concensus reached at 10/98 meeting,
	wording to arrive in a public comment for addoption into
	FDIS

Proposals with final words approved for inclusion into the C9X draft
that have not yet been applied, stage 4:
 
Proposals principally approved, final wording to be drafted by review
committee, stage 3:
                  
Reminder of what the stages mean, the stages only give the state the
proposal is in.  Proposals can skip stages.  This is adapted from N556
and N585 as accepted at the June 96, Amsterdam meeting:

Stage 1 = proposal w/o technical details requesting interest from WG14
          for development of a technical proposal.

Stage 2 = technical proposal, ready for consideration by WG14.

Stage 3 = principally accepted, for inclusion into C9X.  At this stage
          the exact C9X changes must be drafted and edited by the
          review committee.  After review, the final C9X changes are
          to be included in a mailing for final approval by WG14 for
          inclusion into the C9X draft.

Stage 4 = accepted by WG14 for inclusion as is into C9X.  The proposal
          contains the specific editing instructions to change the C9X
          draft, and is ready to be included in the next C9X draft.

Stage 5 = changes applied to the latest C9X draft.

Stage 6 = verified by the review committee as being correctly applied
          in the C9X draft.