Xref: utzoo comp.sys.amiga.tech:9289 comp.std.c:2359 Newsgroups: comp.sys.amiga.tech,comp.std.c Path: utzoo!henry From: henry@utzoo.uucp (Henry Spencer) Subject: Re: __chip is evil Message-ID: <1990Jan13.233457.6002@utzoo.uucp> Organization: U of Toronto Zoology References: <85006@linus.UUCP> <4839@sugar.hackercorp.com> <86113@linus.UUCP> <4919@sugar.hackercorp.com> Date: Sat, 13 Jan 90 23:34:57 GMT In article <4919@sugar.hackercorp.com> peter@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@zoo.toronto.edu