https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80509

--- Comment #6 from rguenther at suse dot de <rguenther at suse dot de> ---
On Tue, 25 Apr 2017, trippels at gcc dot gnu.org wrote:

> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80509
> 
> Markus Trippelsdorf <trippels at gcc dot gnu.org> changed:
> 
>            What    |Removed                     |Added
> ----------------------------------------------------------------------------
>                  CC|                            |trippels at gcc dot gnu.org
> 
> --- Comment #5 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
> https://vmakarov.fedorapeople.org/spec/ shows on several machines:
> 
> cc1: internal compiler error: Segmentation fault                              
>  
>                                                                               
>  
>                    0x9f1c15 crash_signal                                      
>   
>        
> /home/cygnus/vmakarov/perf/sbox/gcc/local.spec2000.x86_64/src/gcc/toplev.c:337
>  
>                                                                               
>  
>            0x931e51 is_empty<hash_map<nofree_string_hash, opt_pass*,
> simple_hashmap_traits<default_hash_traits<nofree_string_hash>, opt_pass*>
> >::hash_entry>                                 
>        
> /home/cygnus/vmakarov/perf/sbox/gcc/local.spec2000.x86_64/src/gcc/hash-map-traits.h:73
>                                                                               
>  
>     0x931e51 hash_map<nofree_string_hash, opt_pass*,
> simple_hashmap_traits<default_hash_traits<nofree_string_hash>, opt_pass*>
> >::hash_entry::is_empty(hash_map<nofree_string_hash, opt_pass*,
> simple_hashmap_traits<default_hash_traits<nofree_string_hash>, opt_pass*>
> >::hash_entry const&)                                                         
> > 
>                         
> /home/cygnus/vmakarov/perf/sbox/gcc/local.spec2000.x86_64/src/gcc/hash-map.h:57
>                                                                               
>  
>            0x931e51 hash_table<hash_map<nofree_string_hash, opt_pass*,
> simple_hashmap_traits<default_hash_traits<nofree_string_hash>, opt_pass*>
> >::hash_entry, xcallocator>::is_empty(hash_map<nofree_string_hash, opt_pass*,
> simple_hashmap_traits<default_hash_traits<nofree_string_hash>, opt_pass*>
> >::hash_entry&)                                                               
> > 
> /home/cygnus/vmakarov/perf/sbox/gcc/local.spec2000.x86_64/src/gcc/hash-table.h:515
>                                                                               
>  
>         0x931e51 hash_table<hash_map<nofree_string_hash, opt_pass*,
> simple_hashmap_traits<default_hash_traits<nofree_string_hash>, opt_pass*>
> >::hash_entry, xcallocator>::find_with_hash(char const* const&, unsigned int) 
> > 
>                                                                               
>  
>                                                                        
> /home/cygnus/vmakarov/perf/sbox/gcc/local.spec2000.x86_64/src/gcc/hash-table.h:842
>                                                                               
>  
>         0x931e51 hash_map<nofree_string_hash, opt_pass*,
> simple_hashmap_traits<default_hash_traits<nofree_string_hash>, opt_pass*>
> >::get(char const* const&)                                     
> /home/cygnus/vmakarov/perf/sbox/gcc/local.spec2000.x86_64/src/gcc/hash-map.h:150
>  
> 0x931e51 gcc::pass_manager::register_pass_name(opt_pass*, char const*)        
>  
>                                                                               
>  
>                           
> /home/cygnus/vmakarov/perf/sbox/gcc/local.spec2000.x86_64/src/gcc/passes.c:857
>  
>                                                                               
>  
>            0x9322f2 gcc::pass_manager::register_one_dump_file(opt_pass*)      
>  
>                                                                               
>  
>                                      
> /home/cygnus/vmakarov/perf/sbox/gcc/local.spec2000.x86_64/src/gcc/passes.c:827
>  
>                                                                               
>  
>            0x932628 gcc::pass_manager::register_dump_files(opt_pass*)         
>  
>                                                                               
>  
>                                      
> /home/cygnus/vmakarov/perf/sbox/gcc/local.spec2000.x86_64/src/gcc/passes.c:839
>   
> 0x937c76 pass_manager                                                         
>  
>                                                                               
>  
>                           
> /home/cygnus/vmakarov/perf/sbox/gcc/local.spec2000.x86_64/src/gcc/passes.c:1607
>                                                                               
>  
>            0x683c84 context                                                   
>  
>                                                                               
>  
>                                      
> /home/cygnus/vmakarov/perf/sbox/gcc/local.spec2000.x86_64/src/gcc/context.c:39
>  
>                                                                               
>  
>            0x9f3202 general_init                                              
>  
>                                                                               
>  
>                                      
> /home/cygnus/vmakarov/perf/sbox/gcc/local.spec2000.x86_64/src/gcc/toplev.c:1159
> 
> But I cannot reproduce it, too.

Ah, that at least hints at the bug.  Fix(?):

Index: gcc/passes.c
===================================================================
--- gcc/passes.c        (revision 247095)
+++ gcc/passes.c        (working copy)
@@ -1532,7 +1532,7 @@ pass_manager::pass_manager (context *ctx
 : all_passes (NULL), all_small_ipa_passes (NULL), all_lowering_passes 
(NULL),
   all_regular_ipa_passes (NULL),
   all_late_ipa_passes (NULL), passes_by_id (NULL), passes_by_id_size (0),
-  m_ctxt (ctxt)
+  m_ctxt (ctxt), m_name_to_pass_map (NULL)
 {
   opt_pass **p;

Reply via email to