[Bug target/39175] ICE while compiling qt-4.5.0-rc1

2009-03-25 Thread bje at gcc dot gnu dot org


--- 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

2009-03-25 Thread bje at gcc dot gnu dot org


--- 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

2009-03-25 Thread rguenth at gcc dot gnu dot org


-- 

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

2009-03-15 Thread doko at ubuntu dot com


--- 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

2009-02-19 Thread jakub at gcc dot gnu dot org


--- 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

2009-02-19 Thread jakub at gcc dot gnu dot org


--- 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

2009-02-13 Thread jakub at gcc dot gnu dot org


--- 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

2009-02-13 Thread jakub at gcc dot gnu dot org


--- 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

2009-02-13 Thread rguenth at gcc dot gnu dot org


--- 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