Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #26149

Re: Params -> local vars?

From Richard Damon <news.x.richarddamon@xoxy.net>
Newsgroups comp.lang.c
Subject Re: Params -> local vars?
Date 2012-09-08 16:43 -0400
Organization A noiseless patient Spider
Message-ID <k2gale$9mr$1@dont-email.me> (permalink)
References <jv6nmr$15k$1@speranza.aioe.org> <kfn8vclh8j4.fsf@x-alumni2.alumni.caltech.edu> <lna9x1s583.fsf@nuthaus.mib.org> <kfnbohgyavl.fsf@x-alumni2.alumni.caltech.edu>

Show all headers | View raw


On 9/8/12 8:09 AM, Tim Rentsch wrote:
> Keith Thompson <kst-u@mib.org> writes:
> 
>> Tim Rentsch <txr@alumni.caltech.edu> writes:
>> [...]
>>> 3. The prototype style of parameter declaration allows (and requires)
>>> any call after the prototype declaration to have the types of its
>>> arguments checked against the parameter types given in the prototype.
>>> In contrast, the old style of parameter declaration does not do
>>> such type checking (and the Standard says specifically that such
>>> type checking will not be done).
>> [...]
>>
>> Checking is not *required*, but an implementation is free to perform it
>> anyway.  [snip example]
> 
> Talking about function calls, 6.5.2.2 p 8 says "the number and
> types of arguments are not compared with those of the parameters
> in a function definition that does not include a function
> prototype declarator."
> 
> You're right that implementations are free to issue any
> diagnostics they want.  At the same time, what is in those
> diagnostics cannot depend on the results of comparisons
> that implementations are prohibited from making.
> 

The implementation is not prohibited from making any comparisons that it
might want to make, and can say what ever it wants to say, as long as it
prints at least some sort of diagnostic message for a program that
violates a constraint.

It is free to emit a message for anything it wants, even for things that
are "valid code". It is still conforming to issue warnings for things
like unneeded parenthesis or missing unneeded parenthesis that some
coding style might suggest be included due to people often getting
things wrong.

The resulting program output from the implementation (only required if
the program violates no constraints) must produce the standard defined
behavior (for as long as the standard defines the behavior, possibly
with some implementation defined behavior when that is mandated by the
standard). Since calling a non-prototyped function with the wrong
parameter types is not a constraint violation, the compiler can not use
this as grounds to not produce a resulting program (although when/if the
call occurs it creates undefined behavior), but it is free to make what
ever warnings it wants.



Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Params -> local vars? Jon Howson <nospam@nospam.com> - 2012-07-30 19:35 +0000
  Re: Params -> local vars? Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-07-30 15:54 -0400
  Re: Params -> local vars? James Kuyper <jameskuyper@verizon.net> - 2012-07-30 16:00 -0400
  Re: Params -> local vars? Kenneth Brody <kenbrody@spamcop.net> - 2012-07-30 16:01 -0400
  Re: Params -> local vars? Stephen Sprunk <stephen@sprunk.org> - 2012-07-30 15:09 -0500
    Re: Params -> local vars? Mark Bluemel <mark_bluemel@pobox.com> - 2012-07-31 08:34 +0100
      Re: Params -> local vars? Kleuske <kleuske@nowhere.net> - 2012-07-31 19:29 +0000
        Re: Params -> local vars? Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-07-31 15:51 -0400
      Re: Params -> local vars? Kenneth Brody <kenbrody@spamcop.net> - 2012-08-01 15:58 -0400
  Re: Params -> local vars? Keith Thompson <kst-u@mib.org> - 2012-07-30 13:49 -0700
  Re: Params -> local vars? Joe Pfeiffer <pfeiffer@cs.nmsu.edu> - 2012-07-30 21:56 -0600
  Re: Params -> local vars? David T. Ashley <dashley@gmail.com> - 2012-07-31 08:42 -0400
  Re: Params -> local vars? Tim Rentsch <txr@alumni.caltech.edu> - 2012-09-07 13:39 -0700
    Re: Params -> local vars? Keith Thompson <kst-u@mib.org> - 2012-09-07 17:55 -0700
      Re: Params -> local vars? Tim Rentsch <txr@alumni.caltech.edu> - 2012-09-08 05:09 -0700
        Re: Params -> local vars? Keith Thompson <kst-u@mib.org> - 2012-09-08 11:14 -0700
        Re: Params -> local vars? Richard Damon <news.x.richarddamon@xoxy.net> - 2012-09-08 16:43 -0400
          Re: Params -> local vars? Tim Rentsch <txr@alumni.caltech.edu> - 2012-12-17 14:13 -0800

csiph-web