|
|
1.1 ! root 1: This is a partial list of how `gcc -traditional' disagrees with ! 2: traditional C compilers (perhaps only some of them). Most of these ! 3: differences are not bugs. ! 4: ! 5: --------------------------------------------------------------------------- ! 6: K&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: ! 11: Up until recently, `gcc -traditional' complained about \x \a and \v ! 12: appearing in a character or string literal. I believe however that ! 13: this non-feature has been eliminated (recently). ! 14: ! 15: --------------------------------------------------------------------------- ! 16: When in -traditional mode, gcc allows the following erroneous pair of ! 17: declarations to appear together in a given scope: ! 18: ! 19: typedef int foo; ! 20: typedef foo foo; ! 21: ! 22: --------------------------------------------------------------------------- ! 23: K&R-1 (8.5) says: ! 24: ! 25: "No field may be wider than a word." ! 26: ! 27: Gcc however allows: ! 28: ! 29: struct S { int i:33; }; ! 30: ! 31: --------------------------------------------------------------------------- ! 32: In K&R-1 there is no restriction against comments crossing include file ! 33: boundaries. Gcc however doesn't allow this, even when in -traditional mode. ! 34: ! 35: --------------------------------------------------------------------------- ! 36: Regarding 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: ! 41: Gcc treats all characters of identifiers as significant, even when in ! 42: -traditional mode. ! 43: ! 44: --------------------------------------------------------------------------- ! 45: K&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: ! 50: Gcc also allows dollar signs in identifiers. (This may also be an issue ! 51: for the -pedantic option.) ! 52: ! 53: --------------------------------------------------------------------------- ! 54: ! 55:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.