Launchpad has imported 9 comments from the remote bug at https://gcc.gnu.org/bugzilla/show_bug.cgi?id=39175.
If you reply to an imported comment from within Launchpad, your comment will be sent to the remote bug automatically. Read more about Launchpad's inter-bugtracker facilities at https://help.launchpad.net/InterBugTracking. ------------------------------------------------------------------------ On 2009-02-13T09:21:55+00:00 Jakub-gcc wrote: /* { dg-options "-O2 -m32 -fvisibility=hidden -msecure-plt -fpic" } */ __attribute__((noinline)) int foo (int x) { return x; } int foo (int x); int bar (int x) { return foo (x); } ICEs on the if (DEFAULT_ABI == ABI_V4 && flag_pic) { gcc_assert (!TARGET_SECURE_PLT); return \"b %z1@plt\"; } else return \"b %z1\"; assertion in sibcall_value_nonlocal_sysv. Reply at: https://bugs.launchpad.net/ubuntu/+source/gcc-4.3/+bug/342335/comments/0 ------------------------------------------------------------------------ On 2009-02-13T10:36:19+00:00 Jakub-gcc wrote: 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. Reply at: https://bugs.launchpad.net/ubuntu/+source/gcc-4.3/+bug/342335/comments/1 ------------------------------------------------------------------------ On 2009-02-13T11:33:09+00:00 Jakub-gcc wrote: Created attachment 17292 gcc44-pr39175.patch Patch I'm going to bootstrap/regtest. Reply at: https://bugs.launchpad.net/ubuntu/+source/gcc-4.3/+bug/342335/comments/2 ------------------------------------------------------------------------ On 2009-02-13T12:44:46+00:00 Rguenth wrote: This also ICEs on the 4.3 branch. Reply at: https://bugs.launchpad.net/ubuntu/+source/gcc-4.3/+bug/342335/comments/3 ------------------------------------------------------------------------ On 2009-02-19T21:15:25+00:00 Jakub-gcc wrote: Subject: Bug 39175 Author: jakub Date: Thu Feb 19 21:15:12 2009 New Revision: 144305 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=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 Reply at: https://bugs.launchpad.net/ubuntu/+source/gcc-4.3/+bug/342335/comments/4 ------------------------------------------------------------------------ On 2009-02-19T21:16:48+00:00 Jakub-gcc wrote: Fixed on the trunk so far. Reply at: https://bugs.launchpad.net/ubuntu/+source/gcc-4.3/+bug/342335/comments/5 ------------------------------------------------------------------------ On 2009-03-15T09:47:34+00:00 Matthias Klose wrote: *** Bug 39461 has been marked as a duplicate of this bug. *** Reply at: https://bugs.launchpad.net/ubuntu/+source/gcc-4.3/+bug/342335/comments/13 ------------------------------------------------------------------------ On 2009-03-25T22:05:21+00:00 Bje-0 wrote: Subject: Bug 39175 Author: bje Date: Wed Mar 25 22:05:08 2009 New Revision: 145076 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=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 Reply at: https://bugs.launchpad.net/ubuntu/+source/gcc-4.3/+bug/342335/comments/15 ------------------------------------------------------------------------ On 2009-03-25T22:06:49+00:00 Bje-0 wrote: Now fixed on the 4.3 branch and on mainline. Reply at: https://bugs.launchpad.net/ubuntu/+source/gcc-4.3/+bug/342335/comments/16 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/342335 Title: [PR39461] ICE compiling qt4-x11 on powerpc To manage notifications about this bug go to: https://bugs.launchpad.net/gcc/+bug/342335/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs