This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/53426] [4.8 Regression] ICE:create_variable_info_for at ../../gcc-trunk/gcc/tree-ssa-structalias.c:5581
- From: "hubicka at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 22 May 2012 13:31:28 +0000
- Subject: [Bug tree-optimization/53426] [4.8 Regression] ICE:create_variable_info_for at ../../gcc-trunk/gcc/tree-ssa-structalias.c:5581
- Auto-submitted: auto-generated
- References: <bug-53426-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53426
--- Comment #9 from Jan Hubicka <hubicka at gcc dot gnu.org> 2012-05-22 13:31:28 UTC ---
OK,
I see the following:
6882 FOR_EACH_VARIABLE (var)
6883 {
6884 if (var->alias)
6885 continue;
6886
6887 get_vi_for_tree (var->symbol.decl);
6888 }
(gdb) p dump_varpool_node (stderr, var)
_ZTVN5boost16exception_detail19error_info_injectorISt13runtime_errorEE.local.230/1658
(_ZTVN5boost16exception_detail19error_info_injectorISt13runtime_errorEE)
@0x7ffff75f1e88
Type: variable
Visibility: in_other_partition used_from_other_partition
prevailing_def_ironly external public visibility_specified visibility:hidden
virtual artificial
References:
Referring:
_ZNK5boost16exception_detail10clone_implINS0_19error_info_injectorISt13runtime_errorEEE5cloneEv.local.151/2414
(addr)_ZNK5boost16exception_detail10clone_implINS0_19error_info_injectorISt13runtime_errorEEE5cloneEv.local.151/2414
(addr)
Availability: overwritable
Varpool flags: initialized finalized
this var won't pass varpool_all_refs_explicit: it is from other partition and
used from elsewhere.
Partitioning should have put the variables referred by this constructor into a
boundary and it is not doing it - I will fix that.
(it gets that right at my internal symbol table tree)
On the other hand, is ipa-pta able to take advantage of fact that the variable
is readonly? I would propose:
Index: tree-ssa-structalias.c
===================================================================
--- tree-ssa-structalias.c (revision 187695)
+++ tree-ssa-structalias.c (working copy)
@@ -5583,7 +5583,8 @@ create_variable_info_for (tree decl, con
/* If this is a global variable with an initializer and we are in
IPA mode generate constraints for it. */
- if (DECL_INITIAL (decl))
+ if (DECL_INITIAL (decl)
+ && vnode->analyzed)
{
VEC (ce_s, heap) *rhsc = NULL;
struct constraint_expr lhs, *rhsp;
I.e. to care only about constructors of vars from current partition.
This function does not check varpool_all_refs_explicit as you suggested in
previous comment.