Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/18/84; site brl-tgr.ARPA Path: utzoo!watmath!clyde!burl!ulysses!allegra!mit-eddie!genrad!panda!talcott!harvard!seismo!brl-tgr!tgr!gwyn@Brl-Vld.ARPA From: gwyn@Brl-Vld.ARPA (VLD/VMB) Newsgroups: net.lang.c Subject: Re: C question Message-ID: <9879@brl-tgr.ARPA> Date: Thu, 11-Apr-85 11:31:22 EST Article-I.D.: brl-tgr.9879 Posted: Thu Apr 11 11:31:22 1985 Date-Received: Sat, 13-Apr-85 04:32:58 EST Sender: news@brl-tgr.ARPA Lines: 14 The compiler is perfectly within its rights in making x = 5; x = x++; result in x==5 sometimes and x==6 other times. This is one of the implementation-dependent aspects of the C language, intended to allow better overall code generation. You should not write such source code. If there is a movl r11,r11 in your output, then you must not have invoked the C optimizer (cc -O option). To make code generation easier and more reliable, the main compiler relies on the optimizer to clean up such things.