1This is a partial list of how `gcc -traditional' disagrees with 2traditional C compilers (perhaps only some of them). Most of these 3differences are not bugs. 4 5--------------------------------------------------------------------------- 6K&R-1 (2.4.3) says: 7 8 "If the character following a backslash is not one of those 9 specified {in the table above}, the backslash is ignored." 10 11Up until recently, `gcc -traditional' complained about \x \a and \v 12appearing in a character or string literal. I believe however that 13this non-feature has been eliminated (recently). 14 15--------------------------------------------------------------------------- 16When in -traditional mode, gcc allows the following erroneous pair of 17declarations to appear together in a given scope: 18 19 typedef int foo; 20 typedef foo foo; 21 22--------------------------------------------------------------------------- 23K&R-1 (8.5) says: 24 25 "No field may be wider than a word." 26 27Gcc however allows: 28 29 struct S { int i:33; }; 30 31--------------------------------------------------------------------------- 32In K&R-1 there is no restriction against comments crossing include file 33boundaries. Gcc however doesn't allow this, even when in -traditional mode. 34 35--------------------------------------------------------------------------- 36Regarding the length of identifiers, K&R-1 (2.2) says: 37 38 "No more than the first eight characters are significant, 39 although more may be used." 40 41Gcc treats all characters of identifiers as significant, even when in 42-traditional mode. 43 44--------------------------------------------------------------------------- 45K&R-1 (2.2) says: 46 47 "An identifier is a sequence of letters and digits; the first 48 character must be a letter. The underscore _ counts as a letter." 49 50Gcc also allows dollar signs in identifiers. (This may also be an issue 51for the -pedantic option.) 52 53--------------------------------------------------------------------------- 54 55 56