home *** CD-ROM | disk | FTP | other *** search
- 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.)
-
- ---------------------------------------------------------------------------
-
-
-