mirror of
https://git.hardenedbsd.org/hardenedbsd/HardenedBSD.git
synced 2024-12-29 06:47:21 +01:00
a4cd5630b0
non-i386, non-unix, and generatable files have been trimmed, but can easily be added in later if needed. gcc-2.7.2.1 will follow shortly, it's a very small delta to this and it's handy to have both available for reference for such little cost. The freebsd-specific changes will then be committed, and once the dust has settled, the bmakefiles will be committed to use this code.
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.)
|
|
|
|
---------------------------------------------------------------------------
|
|
|
|
|