Skip site navigation (1)Skip section navigation (2)
Date:      11 May 2002 18:34:44 +0200
From:      Dag-Erling Smorgrav <des@ofug.org>
To:        hiten@uk.FreeBSD.org
Cc:        current@FreeBSD.org
Subject:   Re: alpha tinderbox failure
Message-ID:  <xzpy9eqzlqz.fsf@flood.ping.uio.no>
In-Reply-To: <20020511161441.GA1568@hpdi.ath.cx>
References:  <20020511161441.GA1568@hpdi.ath.cx>

next in thread | previous in thread | raw e-mail | index | archive | help
Hiten Pandya <hiten@uk.FreeBSD.org> writes:

> > ===> libtelnet
> > cc1: warnings being treated as errors
> > /.amd_mnt/freefall/host/d/home/des/tinderbox/src/crypto/telnet/libtelnet/kerberos.c: In function 
> > `kerberos4_cksum':
> > /.amd_mnt/freefall/host/d/home/des/tinderbox/src/crypto/telnet/libtelnet/kerberos.c:496: warning: 
> > unreachable code at beginning of switch statement
> > *** Error code 1
> 
> 
> %%%
> int
> kerberos4_cksum(unsigned char *d, int n)
> {
> 	int ck = 0;
> 
> 	/*
> 	 * A comment is probably needed here for those not
> 	 * well versed in the "C" language.  Yes, this is
> 	 * supposed to be a "switch" with the body of the
> 	 * "switch" being a "while" statement.  The whole
> 	 * purpose of the switch is to allow us to jump into
> 	 * the middle of the while() loop, and then not have
> 	 * to do any more switch()s.
> 	 *
> 	 * Some compilers will spit out a warning message
> 	 * about the loop not being entered at the top.
> 	 */
> 	switch (n&03)
> 	while (n > 0) {
> 	case 0:
> 		ck ^= (int)*d++ << 24;
> 		--n;
> 	case 3:
> 		ck ^= (int)*d++ << 16;
> 		--n;
> 	case 2:
> 		ck ^= (int)*d++ << 8;
> 		--n;
> 	case 1:
> 		ck ^= (int)*d++;
> 		--n;
> 	}
> 	return(ck);
> }
> %%%

Hmm, does this mean Duff's Device is not valid C?

DES
-- 
Dag-Erling Smorgrav - des@ofug.org

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?xzpy9eqzlqz.fsf>