Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!samsung!umich!ox.com!yale.edu!cmcl2!kramden.acf.nyu.edu!brnstnd From: brnstnd@kramden.acf.nyu.edu (Dan Bernstein) Newsgroups: comp.lang.c Subject: Re: Can analysis detect undefined expressions? Message-ID: <6622.Jun2023.40.0891@kramden.acf.nyu.edu> Date: 20 Jun 91 23:40:08 GMT References: <14206.285B7688@stjhmc.fidonet.org> <6371@goanna.cs.rmit.oz.au> Organization: IR Lines: 15 In article worley@compass.com (Dale Worley) writes: [ on statements like (i = 1) == (i = 2) ] > The effect of this > statement is "undefined", which means that the implementation can do > *anything*, including giving i the value 100, core dumping, or > starting World War III. More realistically, there do exist architectures where parts of the first assignment can overlap parts of the second. Think about core memories: to read a bit you have to flip a bit, and the operations don't commute. You just can't access the same word twice in one cycle. Otherwise both the word and the value you read from it can be corrupted. Vector machines, such as the Convex, continue this fine tradition. ---Dan