[Bug target/39175] ICE while compiling qt-4.5.0-rc1
--- Comment #7 from bje at gcc dot gnu dot org 2009-03-25 22:05 --- Subject: Bug 39175 Author: bje Date: Wed Mar 25 22:05:08 2009 New Revision: 145076 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=145076 Log: Backport from mainline: 2009-02-19 Jakub Jelinek ja...@redhat.com PR target/39175 * c-common.c (c_determine_visibility): If visibility changed and DECL_RTL has been already set, call make_decl_rtl to update symbol flags. cp/ * decl2.c (determine_visibility): If visibility changed and DECL_RTL has been already set, call make_decl_rtl to update symbol flags. testsuite/ * gcc.dg/visibility-20.c: New test. * g++.dg/ext/visibility/visibility-11.C: New test. Added: branches/gcc-4_3-branch/gcc/testsuite/g++.dg/ext/visibility/visibility-11.C branches/gcc-4_3-branch/gcc/testsuite/gcc.dg/visibility-20.c Modified: branches/gcc-4_3-branch/gcc/ChangeLog branches/gcc-4_3-branch/gcc/c-common.c branches/gcc-4_3-branch/gcc/cp/ChangeLog branches/gcc-4_3-branch/gcc/cp/decl2.c branches/gcc-4_3-branch/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39175
[Bug target/39175] ICE while compiling qt-4.5.0-rc1
--- Comment #8 from bje at gcc dot gnu dot org 2009-03-25 22:06 --- Now fixed on the 4.3 branch and on mainline. -- bje at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39175
[Bug target/39175] ICE while compiling qt-4.5.0-rc1
-- rguenth at gcc dot gnu dot org changed: What|Removed |Added Target Milestone|--- |4.3.4 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39175
[Bug target/39175] ICE while compiling qt-4.5.0-rc1
--- Comment #6 from doko at ubuntu dot com 2009-03-15 09:47 --- *** Bug 39461 has been marked as a duplicate of this bug. *** -- doko at ubuntu dot com changed: What|Removed |Added CC||doko at ubuntu dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39175
[Bug target/39175] ICE while compiling qt-4.5.0-rc1
--- Comment #4 from jakub at gcc dot gnu dot org 2009-02-19 21:15 --- Subject: Bug 39175 Author: jakub Date: Thu Feb 19 21:15:12 2009 New Revision: 144305 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=144305 Log: PR target/39175 * c-common.c (c_determine_visibility): If visibility changed and DECL_RTL has been already set, call make_decl_rtl to update symbol flags. * decl2.c (determine_visibility): If visibility changed and DECL_RTL has been already set, call make_decl_rtl to update symbol flags. * gcc.dg/visibility-20.c: New test. * g++.dg/ext/visibility/visibility-11.C: New test. Added: trunk/gcc/testsuite/g++.dg/ext/visibility/visibility-11.C trunk/gcc/testsuite/gcc.dg/visibility-20.c Modified: trunk/gcc/ChangeLog trunk/gcc/c-common.c trunk/gcc/cp/ChangeLog trunk/gcc/cp/decl2.c trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39175
[Bug target/39175] ICE while compiling qt-4.5.0-rc1
--- Comment #5 from jakub at gcc dot gnu dot org 2009-02-19 21:16 --- Fixed on the trunk so far. -- jakub at gcc dot gnu dot org changed: What|Removed |Added Known to fail||4.3.3 Known to work||4.4.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39175
[Bug target/39175] ICE while compiling qt-4.5.0-rc1
--- Comment #1 from jakub at gcc dot gnu dot org 2009-02-13 10:36 --- The problem is in the redundant prototype after function. First the foo FUNCTION_DECL is created, afterwards finish_function calls c_determine_visibility on it which changes its visibility from default to hidden. After this make_decl_rtl is called, determines the function binds locally and sets SYMBOL_FLAG_LOCAL|SYMBOL_FLAG_FUNCTION. Then merge_decls is called, which in turn clears visibility (sets it back to default) and calls make_decl_rtl to update the flags. At this point targetm.binds_local_p returns false, as it at that point has default visibility, so changes DECL_RTL's flags to SYMBOL_FLAG_FUNCTION alone. Then finish_decl calls c_determine_visibility again and sets it back to hidden visibility. But nothing afterwards calls make_decl_rtl again to update the symbol flags again. To fix this, IMHO either c_determine_visibility and C++ determine_visibility need to if (((TREE_CODE (decl) == VAR_DECL TREE_STATIC (decl)) || TREE_CODE (decl) == FUNCTION_DECL) DECL_RTL_SET_P (decl)) make_decl_rtl (decl); if it changed the visibility, or merge_decls/duplicate_decls would need to determine visibility. I'll try the former. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39175
[Bug target/39175] ICE while compiling qt-4.5.0-rc1
--- Comment #2 from jakub at gcc dot gnu dot org 2009-02-13 11:33 --- Created an attachment (id=17292) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=17292action=view) gcc44-pr39175.patch Patch I'm going to bootstrap/regtest. -- jakub at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |jakub at gcc dot gnu dot org |dot org | Status|UNCONFIRMED |ASSIGNED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39175
[Bug target/39175] ICE while compiling qt-4.5.0-rc1
--- Comment #3 from rguenth at gcc dot gnu dot org 2009-02-13 12:44 --- This also ICEs on the 4.3 branch. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39175