[Bug 342335] Re: [PR39461] ICE compiling qt4-x11 on powerpc
Bug Watch Updater
342335 at bugs.launchpad.net
Fri Aug 20 08:52:20 UTC 2021
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 at 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 <jakub at 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 Kubuntu
Bugs, which is subscribed to qt4-x11 in 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
More information about the kubuntu-bugs
mailing list