ISO/ IEC JTC1/SC22/WG14 N635

                          Document Number:  WG14 N635/X3J11 96-099
                               C9X Revision Proposal
       Title: ____Implicit int removal (old-style parameters)______
       Author: _____________Larry Jones____________________________
       Author Affiliation: _SDRC___________________________________
       Postal Address: _____2000 Eastman Dr, Milford, OH 45150_____
       E-mail Address: _____larry.jones@sdrc.com___________________
       Telephone Number: ___513-576-2070___________________________
       Fax Number: _________513-576-2843___________________________
       Sponsor: ____________Larry Jones____________________________
       Date: _______________30 December 1996_______________________
       Proposal Category:
          __ Editorial change/non-normative contribution
          __ Correction
          __ New feature
          __ Addition to obsolescent feature list
          __ Addition to Future Directions
          x_ Other (please specify)  Removal of feature____________
       Area of Standard Affected:
          __ Environment
          x_ Language
          __ Preprocessor
          __ Library
             __ Macro/typedef/tag name
             __ Function
             __ Header
          __ Other (please specify)  ______________________________
       Prior Art: _________________________________________________
       Target Audience: _C Programmers_____________________________
       Related Documents (if any): ________________________________
       Proposal Attached: x_ Yes __ No, but what's your interest?


        At previous meetings, there has been overwhelming sentiment for
        removing the ``implicit int'' declarations from the language and
        requiring explicit declarations instead.  This prevents subtle
        errors due to undeclared identifiers being implicitly declared
        rather than producing a diagnostic.  This proposal handles one
        such case -- the implicit declaration of a parameter in an old-
        style function definition.


        In subclause 6.7.1 Function definitions, Constraints, revise the
        first sentence of the final paragraph to read:

           If the declarator includes an identifier list, each
           declaration in the declaration list shall have at
           least one declarator, those declarators shall declare
           only identifiers from the identifier list, and every
           identifier in the identifier list shall be declared.

        In the same subclause, Semantics, remove the final
        sentence (``Any parameter that is not declared has type
        int.'') and revise the penultimate sentence to read:

           If the declarator includes an identifier list,[85] the
           types of the parameters shall be declared in a
           following declaration list.