Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!purdue!haven!adm!smoke!gwyn From: gwyn@smoke.BRL.MIL (Doug Gwyn) Newsgroups: comp.lang.c Subject: Re: Standard Clarification Message-ID: <11374@smoke.BRL.MIL> Date: 21 Oct 89 23:47:52 GMT References: <20974@gryphon.COM> <1150@crdos1.crd.ge.COM> <23218@cup.portal.com> Reply-To: gwyn@brl.arpa (Doug Gwyn) Organization: Ballistic Research Lab (BRL), APG, MD. Lines: 13 In article <23218@cup.portal.com> Tim_CDC_Roberts@cup.portal.com writes: > #define d define > #d a include >Does the standard require that this construct should compile correctly? No, it requires that a diagnostic be issued. >Isn't the preprocessor legally and morally bound to recursively >substitute macros, at least until a cycle is found? Yes; I suspect in the case you reported the compiler failed to look beyond the replacement buffer for the () necessary for the getchar() expansion to be triggered. That's a bug.