Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 01 Feb 2002 14:37:53 +0000
From:      Mark Murray <mark@grondar.za>
To:        Bruce Evans <bde@zeta.org.au>
Cc:        Juha Juntunen <estabur@hotmail.com>, arch@FreeBSD.ORG
Subject:   Re: __P macro question 
Message-ID:  <200202011438.g11EbxE98677@greenpeace.grondar.org>
In-Reply-To: <20020202012011.U3304-100000@gamplex.bde.org> ; from Bruce Evans <bde@zeta.org.au>  "Sat, 02 Feb 2002 01:31:23 %2B1100."
References:  <20020202012011.U3304-100000@gamplex.bde.org> 

next in thread | previous in thread | raw e-mail | index | archive | help
> Right.  I don't trust anyone who is not familiar with this point to
> globally remove __P.
> 
> People removing __P should also be familiar with the gcc conterpoint:
> 
>     void foo(char);		/* Wrong; should be "void foo(int);". */
>     void foo(c) char c; {}
> 
> gives undefined behaviour in Standard C, but gcc defines its behaviour
> to be do-what-naive-programmer-expects.  This is only safe provided the
> wrong prototype for foo() is always in scope before foo() is called;
> otherwise foo() is sometimes passed an int and sometimes a char, but
> foo() expects to be passed either an int or a char depending on whether
> the wrong prototype is in scope for the function body.

So, does this not effectively make a rule, "You will _always_ properly
prototype functions, and make sure that these proper prototypes are in
scope before you use (and define) the functions."?

M
-- 
o       Mark Murray
\_      FreeBSD Services Limited
O.\_    Warning: this .sig is umop ap!sdn

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-arch" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200202011438.g11EbxE98677>