Date: Mon, 05 Sep 2011 18:43:45 +0200 From: Matthias Andree <matthias.andree@gmx.de> To: freebsd-ports@freebsd.org Subject: Re: reasons for rewriting regular memory Message-ID: <4E64FC41.2080702@gmx.de> In-Reply-To: <4e6491d0.MNLKNzL63JK0kXDG%perryh@pluto.rain.com> References: <20110725155920.GA83490@freebsd.org> <4E631DBF.9000106@yandex.ru> <20110904101252.526de5ef@nonamehost.> <4E632A09.8060904@FreeBSD.org> <20110904114550.71c63078@nonamehost.> <4E63516B.7000805@FreeBSD.org> <20110904130659.7a94cce8@raksha.tavi.co.uk> <4E637DD8.50700@gmx.de> <4e6491d0.MNLKNzL63JK0kXDG%perryh@pluto.rain.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Am 05.09.2011 11:09, schrieb perryh@pluto.rain.com: > Matthias Andree <matthias.andree@gmx.de> wrote: >>> I agree, but I can think of another valid exception. System with >>> Hamming correction on the memory, gets a single bit (correctable) >>> error. Need to rewrite the memory contents to reset all the parity >>> bits! >> That's a matter of the EDAC stuff, not the business of applications. > > True, but it may explain why clang does not flag "*x = *x;" when it > does flag "x = x;". A compiler cannot know the context in which the > compiled code will be used. And a compiler is free to optimize either away unless the storage class is "volatile", so the original point stands: > BTW I agree that an understanding is needed of _why_ the code in > question was included. Which waits on the original author. On the other issue: > I have seen "x = x;" -- x being a formal > parameter -- used to prevent an "unused argument" warning in a > function which did not in fact need the argument in question, but > had to declare it for uniformity with other functions pointed to > by the same function pointer type. The portable and concise solution is to cast unused arguments to void, as in this example: int f(int used, int unused) { (void)unused; // avoids warnings // ... // now do something with used // ... return 42; }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4E64FC41.2080702>