|
Message-ID: <20190123191802.GB15311@bombadil.infradead.org> Date: Wed, 23 Jan 2019 11:18:02 -0800 From: Matthew Wilcox <willy@...radead.org> To: Jani Nikula <jani.nikula@...ux.intel.com> Cc: Greg KH <gregkh@...uxfoundation.org>, Kees Cook <keescook@...omium.org>, dev@...nvswitch.org, Ard Biesheuvel <ard.biesheuvel@...aro.org>, netdev@...r.kernel.org, intel-gfx@...ts.freedesktop.org, linux-usb@...r.kernel.org, linux-kernel@...r.kernel.org, dri-devel@...ts.freedesktop.org, linux-mm@...ck.org, linux-security-module@...r.kernel.org, kernel-hardening@...ts.openwall.com, intel-wired-lan@...ts.osuosl.org, linux-fsdevel@...r.kernel.org, xen-devel@...ts.xenproject.org, Laura Abbott <labbott@...hat.com>, linux-kbuild@...r.kernel.org, Alexander Popov <alex.popov@...ux.com> Subject: Re: [Intel-gfx] [PATCH 1/3] treewide: Lift switch variables out of switches On Wed, Jan 23, 2019 at 04:17:30PM +0200, Jani Nikula wrote: > Can't have: > > switch (i) { > int j; > case 0: > /* ... */ > } > > because it can't be turned into: > > switch (i) { > int j = 0; /* not valid C */ > case 0: > /* ... */ > } > > but can have e.g.: > > switch (i) { > case 0: > { > int j = 0; > /* ... */ > } > } > > I think Kees' approach of moving such variable declarations to the > enclosing block scope is better than adding another nesting block. Another nesting level would be bad, but I think this is OK: switch (i) { case 0: { int j = 0; /* ... */ } case 1: { void *p = q; /* ... */ } } I can imagine Kees' patch might have a bad effect on stack consumption, unless GCC can be relied on to be smart enough to notice the non-overlapping liveness of the vriables and use the same stack slots for both.
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.