On Wed, Nov 09, 2016 at 02:16:45PM +0100, Martin Liška wrote: > As shown in the attached test-case, the assert cannot always be true. > Patch can bootstrap on ppc64le-redhat-linux and survives regression tests. > > Ready to be installed? > Martin
> >From b55459461f3f7396a094be6801082715ddb4b30d Mon Sep 17 00:00:00 2001 > From: marxin <mli...@suse.cz> > Date: Wed, 9 Nov 2016 11:52:00 +0100 > Subject: [PATCH] Remove unneeded gcc_assert in gimplifier (PR sanitizer/78270) > > gcc/ChangeLog: > > 2016-11-09 Martin Liska <mli...@suse.cz> > > PR sanitizer/78270 > * gimplify.c (gimplify_switch_expr): No description on what you've changed. That said, I'm not 100% sure it is the right fix. As the testcase shows, for switch without GIMPLE_BIND wrapping the body we can have variables that are in scope from the switch onwards. I bet we could also have variables that go out of scope, say if in the compound literal's initializer there is ({ ... }) that declares variables. I doubt you can have a valid case/default label in those though, so perhaps it would be simpler not to create live_switch_vars at all if SWITCH_BODY is not a BIND_EXPR? Jakub