From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12009 invoked by alias); 5 Jul 2010 08:59:28 -0000 Received: (qmail 11994 invoked by uid 22791); 5 Jul 2010 08:59:28 -0000 X-SWARE-Spam-Status: No, hits=-0.9 required=5.0 tests=AWL,BAYES_40,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mail.codesourcery.com (HELO mail.codesourcery.com) (38.113.113.100) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 05 Jul 2010 08:59:24 +0000 Received: (qmail 14056 invoked from network); 5 Jul 2010 08:59:22 -0000 Received: from unknown (HELO ?192.168.44.101?) (nathan@127.0.0.2) by mail.codesourcery.com with ESMTPA; 5 Jul 2010 08:59:22 -0000 Message-ID: <4C319EF7.4040001@codesourcery.com> Date: Mon, 05 Jul 2010 08:59:00 -0000 From: Nathan Sidwell User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.9) Gecko/20100423 Thunderbird/3.0.4 MIME-Version: 1.0 To: Mike Stump CC: Mark Mitchell , Michael Matz , Richard Guenther , GCC Patches Subject: Re: [gimple] assignments to volatile References: <4C1F5380.1090107@codesourcery.com> <4C20D40B.30904@codesourcery.com> <4C20D891.5030506@codesourcery.com> <4C21E361.1040900@codesourcery.com> <4C220762.2060703@codesourcery.com> <025B27D1-E620-4BA2-A113-FD28747E2762@comcast.net> <4C22F307.6010403@codesourcery.com> <4936DDA8-4C55-4CF8-8CA7-D8B4435863BF@comcast.net> <4C236C7A.40303@codesourcery.com> <97293849-2D1F-4DE5-9B35-199E26005768@comcast.net> <4C2451CA.2020906@codesourcery.com> <4C2852F4.6070809@codesourcery.com> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org X-SW-Source: 2010-07/txt/msg00353.txt.bz2 On 06/30/10 21:56, Mike Stump wrote: > Below is my take on what we should do. > >> vobj; > > read. > >> vobj = data; > > no re-read > >> expr, vobj = data; > > no re-read. Ok, I think everyone's agreed about that. Do you have a reference to the C standard that clarifies the difference? Wrt the std, all those expression-statements have values - the first is an lvalue, the other 2 are rvalues. Another example I missed is: expr, vobj; I think that should read vobj. But AFAICT 'expr, vobj = data;' and 'expr, vobj;' are identically rvalued according to the C std. Is there anything in the std that justifies them behaving differently? nathan -- Nathan Sidwell :: http://www.codesourcery.com :: CodeSourcery