draft ANSI standard: major, quiet, unnoticed change

Karl Heuer karl at haddock.UUCP
Fri Dec 5 11:54:05 AEST 1986


In article <1379 at hoptoad.uucp> gnu at hoptoad.uucp (John Gilmore) writes:
>The new standard disallows an implementation's pre-#defining any words
>that don't begin with _ (section 3.8.8, "No macro names without a
>leading underscore shall be predefined.").  This breaks all the code
>that uses ["#ifdef vax", etc.]

I noticed this too, and wondered how we are expected to do architecture-
dependent conditional compilation in the future.  Perhaps the idea is to
use "#ifdef _vax", etc.

>One possible workaround is a set of configuration #define's which are only
>visible to #if and #ifdef, not to program code.  [Suggests "#pdefine vax"]

This would still break the letter of the proposal.  But if it's permitted,
it's not necessary to make a new #-word; since macros cannot be recursive,
"#define vax vax" will do.  I believe the old V6 cpp allowed this sort of
thing as a special case.

Karl W. Z. Heuer (ima!haddock!karl or karl at haddock.isc.com), The Walking Lint



More information about the Comp.lang.c mailing list