mirror of
https://github.com/freebsd/freebsd-src.git
synced 2024-11-28 02:32:47 +00:00
56 lines
1.9 KiB
Plaintext
56 lines
1.9 KiB
Plaintext
|
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.)
|
||
|
|
||
|
---------------------------------------------------------------------------
|
||
|
|
||
|
|