Subject: Re: Fix for PR#23300 (cpp and -Wtraditional)
To: James Chacon <jmc@NetBSD.org>
From: Christos Zoulas <christos@zoulas.com>
List: tech-toolchain
Date: 12/15/2003 18:35:08
On Dec 15, 5:02pm, jmc@NetBSD.org (James Chacon) wrote:
-- Subject: Re: Fix for PR#23300 (cpp and -Wtraditional)
| #error is a historical odditity though as to what's valid vs expected.
| Traditional cpp implementations say "#error isn't a valid token so error out"
| and that's exactly what people used it for. All standardizing did there was
| make it part of the spec vs undefined localized behavior (which under the
| implementations I've used error'd out as expected).
|
| For the rest the warning should remain the same as #elif would (under
| traditional auspices) error out. Therefore it needs the leading whitespace
| to work/not error on traditional. Doing that to #error changes the behaviour
| returned to the programmer by 180 degrees which is going to be highly
| unexepected.
|
| Granted this is no different than using #foobar as a way to error out but
| #error is exactly what was used traditionally and then grew into C89.
Yes, and the hack was to indent #error statements so that the # was not
in the first column.
christos