__chip is evil

Henry Spencer henry at utzoo.uucp
Sun Jan 14 10:34:57 AEST 1990


In article <4919 at sugar.hackercorp.com> peter at sugar.hackercorp.com (Peter da Silva) writes:
>> >On the other hand #pragma is not allowed to change the semantics of a
>> >program.
>
>> I'm sorry, but I can't find this in the standard...
>
>Anyone in comp.std.c want to take a crack at it? ...

This is an issue which simply cannot be decided from the text of the
standard.  The usual "not allowed" argument is that the #pragma section
must be read together with the rest of the standard, not in isolation,
and therefore #pragma's "implementation-defined" effect is limited by
the rest of the standard.  The counterargument is that the rest of the
standard must be read together with the #pragma section, i.e. with the
possibility that #pragma may have implementation-defined effects on the
rest of the standard.  Both interpretations are self-consistent, and
there is nothing in the standard that decides between them.

In practice, people *will* implement #pragmas that have semantic effects.
-- 
1972: Saturn V #15 flight-ready|     Henry Spencer at U of Toronto Zoology
1990: birds nesting in engines | uunet!attcan!utzoo!henry henry at zoo.toronto.edu



More information about the Comp.std.c mailing list