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: [email protected]___________________
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?
Abstract:
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.
Proposal:
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.