Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!ll-xn!mit-eddie!husc6!wjh12!maynard!campbell From: campbell@maynard.BSW.COM (Larry Campbell) Newsgroups: comp.sources.d Subject: Re: Multivol dumps core? Message-ID: <779@maynard.BSW.COM> Date: Mon, 15-Dec-86 22:45:39 EST Article-I.D.: maynard.779 Posted: Mon Dec 15 22:45:39 1986 Date-Received: Wed, 17-Dec-86 04:15:10 EST References: <403@vixie.UUCP> Reply-To: campbell@maynard.UUCP (Larry Campbell) Distribution: world Organization: The Boston Software Works, Inc. Lines: 26 In article <403@vixie.UUCP> paul@vixie.UUCP (Paul Vixie Esq) writes: ... >In testdata.c, I found: > > if (no_eoln = (*argv[1] == '-' && *++argv[1] == 'n')) { > >Now, since C doesn't guarantee order of evaluation, this seems blatently >wrong. I don't know neccessarily that this is the cause of my problem, >but if the rest of the code has errors like this, I don't want to bother >trying to find the cause of the core dumps. Mission: Impossible :-), and >I refuse to accept it. You are suffering from an all too common misconception. There are several clearly documented operators for which the order of evaluation IS guaranteed, and && is one of them. I quote from section 7.11 (pg. 190) of K&R: Unlike &, && guarantees left-to-right evaluation; moreover the second operand is not evaluated if the first operand is 0. There may well be bugs in multivol, but the example quoted above isn't one of them. -- Larry Campbell The Boston Software Works, Inc. Internet: campbell@maynard.bsw.com 120 Fulton Street, Boston MA 02109 uucp: {alliant,wjh12}!maynard!campbell +1 617 367 6846 ARPA: campbell%maynard.uucp@harvisr.harvard.edu MCI: LCAMPBELL