Path: utzoo!attcan!uunet!husc6!bloom-beacon!mit-eddie!ll-xn!ames!umd5!brl-adm!brl-smoke!gwyn From: gwyn@brl-smoke.ARPA (Doug Gwyn ) Newsgroups: comp.lang.c Subject: Re: #pragma Message-ID: <7960@brl-smoke.ARPA> Date: 23 May 88 18:19:23 GMT References: <54080@sun.uucp> <11608@mimsy.UUCP> <7950@brl-smoke.ARPA> <1988May23.012636.1719@utzoo.uucp> <2765@umd5.umd.edu> Reply-To: gwyn@brl.arpa (Doug Gwyn (VLD/VMB) ) Organization: Ballistic Research Lab (BRL), APG, MD. Lines: 21 In article <2765@umd5.umd.edu> chris@trantor.umd.edu (Chris Torek) writes: >I took advantage of that clause to make a version of cpp which >warns about #pragma. The reasoning works as follows: The >`implementation-defined' manner can be almost anything (GNU cpp >runs rogue, which appears to be perfectly legal), so long as the >compiler `recognises' the #pragma. The GNU C preprocessor does NOT run rogue when #pragma is encountered. (It used to, before this business was explained to Stallman and crew.) I explained how you need to understand #pragma. You cannot understand it while applying tunnel vision, taking one part of the specification, dropping its context, and attempting to make sense of what remains by linguistic analysis. It doesn't work for philosophy and it also doesn't work for complex technical specifications. I think #pragma is nearly useless, by the way. Its main use seems to be to enable various listing, (conforming) optimization, and debugging levels, and even that is implementation-specific.