This is a partial list of how `gcc -traditional' disagrees with
traditional C compilers (perhaps only some of them).  Most of these
differences are not bugs.

---------------------------------------------------------------------------
K&R-1 (2.4.3) says:

	"If the character following a backslash is not one of those
	specified {in the table above}, the backslash is ignored."

Up until recently, `gcc -traditional' complained about \x \a and \v
appearing in a character or string literal.  I believe however that
this non-feature has been eliminated (recently).

---------------------------------------------------------------------------
When in -traditional mode, gcc allows the following erroneous pair of
declarations to appear together in a given scope:

	typedef int foo;
	typedef foo foo;

---------------------------------------------------------------------------
K&R-1 (8.5) says:

	"No field may be wider than a word."

Gcc however allows:

	struct S { int i:33; };

---------------------------------------------------------------------------
In K&R-1 there is no restriction against comments crossing include file
boundaries.  Gcc however doesn't allow this, even when in -traditional mode.

---------------------------------------------------------------------------
Regarding the length of identifiers, K&R-1 (2.2) says:

	"No more than the first eight characters are significant,
	although more may be used."

Gcc treats all characters of identifiers as significant, even when in
-traditional mode.

---------------------------------------------------------------------------
K&R-1 (2.2) says:

	"An identifier is a sequence of letters and digits; the first
	character must be a letter.  The underscore _ counts as a letter."

Gcc also allows dollar signs in identifiers.  (This may also be an issue
for the -pedantic option.)

---------------------------------------------------------------------------


