Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.1 6/24/83; site hou3c.UUCP
Path: utzoo!linus!decvax!harpo!eagle!mhuxl!houxm!hocda!hou3c!ka
From: ka@hou3c.UUCP (Kenneth Almquist)
Newsgroups: net.lang.c
Subject: Re: C "optimization" (8 of 8)
Message-ID: <317@hou3c.UUCP>
Date: Tue, 21-Feb-84 21:47:11 EST
Article-I.D.: hou3c.317
Posted: Tue Feb 21 21:47:11 1984
Date-Received: Thu, 23-Feb-84 01:33:01 EST
References: <210@mi-cec.UUCP>
Organization: Bell Labs, Holmdel, NJ
Lines: 19

This example also shows what is really a bug in the C compiler.  After
executing the assignment, it (unnecessarily) takes the value of *(a->p->p).
The System V compilers for the VAX and the 3B20 do the same thing.
					Kenneth Almquist


P. S.  For those of you who don't have the original article, the C code was:
typedef struct dp *DP;
struct dp {
    int d;
    DP  p;
    }

test(a)
DP a;
{
    a->p->p->p->d =
 	a->p->p->p->p->d;
}