[Bug middle-end/63186] [4.9/5 Regression] Undefined .L* symbols because of fnsplit
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63186 --- Comment #5 from Dan HorĂ¡k --- Jan, can you backport the fix also to 4.9? It is causing a problem in Fedora where at least one build is failing due this problem.
[Bug middle-end/63186] [4.9/5 Regression] Undefined .L* symbols because of fnsplit
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63186 --- Comment #6 from Jan Hubicka --- Yes, this patch should apply to 4.9 as well.
[Bug middle-end/63186] [4.9/5 Regression] Undefined .L* symbols because of fnsplit
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63186 --- Comment #1 from Jakub Jelinek --- For the case when any of the bbs considered for being split (into function.part.N) refers to a label which is defined in one of the basic blocks that are not considered for split we already kind of have code to handle that, the DECL_UID of the label is put into non_ssa_vars bitmap and then verify_non_ssa_vars is called which if it sees a GIMPLE_LABEL with a label set in non_ssa_vars bitmap will give up. Unfortunately, verify_non_ssa_vars doesn't walk all basic blocks that aren't being split off, but only those that can be executed before reaching the split entry_bb. In the testcase the label is in a basic block that just returns afterwards. So perhaps we'd need to remember if we put any LABEL_DECL uids into non_ssa_vars bitmap and if yes, in addition to what non_ssa_vars does right now also walk all other basic blocks that would not be split away (just the labels at the start of each) and just handle GIMPLE_LABELs for those. Or do that always. Not sure what is supposed to handle the case when a label anywhere in the split_bbs would be referenced from the header basic blocks though.
[Bug middle-end/63186] [4.9/5 Regression] Undefined .L* symbols because of fnsplit
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63186 Jan Hubicka changed: What|Removed |Added Status|UNCONFIRMED |ASSIGNED Last reconfirmed||2014-09-08 Assignee|unassigned at gcc dot gnu.org |hubicka at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #2 from Jan Hubicka --- I guess it is easiest to disallow nonlocal goto, forced labels and their references in the function headers, I will take a look.
[Bug middle-end/63186] [4.9/5 Regression] Undefined .L* symbols because of fnsplit
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63186 Andi Kleen changed: What|Removed |Added CC||andi-gcc at firstfloor dot org --- Comment #3 from Andi Kleen --- Looks very similar to my problem in https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61635
[Bug middle-end/63186] [4.9/5 Regression] Undefined .L* symbols because of fnsplit
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63186 Richard Biener changed: What|Removed |Added Target Milestone|--- |4.9.2
[Bug middle-end/63186] [4.9/5 Regression] Undefined .L* symbols because of fnsplit
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63186 --- Comment #4 from Jan Hubicka --- Author: hubicka Date: Thu Sep 11 06:46:23 2014 New Revision: 215149 URL: https://gcc.gnu.org/viewcvs?rev=215149&root=gcc&view=rev Log: PR tree-optimization/63186 * ipa-split.c (test_nonssa_use): Skip nonforced labels. (mark_nonssa_use): Likewise. (verify_non_ssa_vars): Verify all header blocks for label definitions. * gcc.dg/pr63186.c: New testcase. Added: trunk/gcc/testsuite/gcc.dg/pr63186.c Modified: trunk/gcc/ChangeLog trunk/gcc/ipa-split.c trunk/gcc/testsuite/ChangeLog