Subject: Re: Documentation/languages...
To: None <current-users@NetBSD.ORG, darcy@druid.net>
From: Peter Seebach <seebs@solon.com>
List: current-users
Date: 05/18/1997 22:51:31
Providing a C9X compilation system is *very* likely to make it a bit harder
to host C70.  I don't think the "default argument promotion" rules will
survive.  However, I have no problem with '-traditional' existing and
being used, I just would rather see the main source tree get brought
up to date.

Currently, we appear to depend on the assumption that
	void foo(char c);
	void foo(c)
	char c;
	{}
is accepted, and does the right thing.  I'm doing the proposal
on eliminating old-style functions, and I'm giving this as
prior art for preserving the syntax used in old-style definitions,
but giving them the semantics of prototype declarations, i.e., no
hidden promotions of argument types.

If I lose to the people who just want old-style definitions out of
the language, we'll need to change this.  If I lose to the people
who want old-style kept, we really ought to be fixing the
undefined behavior we get from mixing types.

I'm talking to the gcc people about some of the implementation-level
changes.  As of the last reversal, there are no longer any
unsigned decimal constants unless you use 'U' explicitly.  None
whatsoever; the 'unsigned long' rule went away, because it was
too ugly having unsigned long between long and long long in the
sequence.

(Of course, that's in the draft standard, not in any implementation that
I know of.)

-s