On Apr 21 2017, Richard Biener <rguent...@suse.de> wrote:

> The following fixes uninitialized uses in pass_manager::pass_manager
> which causes bootstrap failure when a fix for PR2972 is applied.

This fails to properly initialize the pass_manager instance, causing cc1
to crash later.

Program received signal SIGSEGV, Segmentation fault.
0x4000000000b417c1 in 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 (this=0x2000000000988140 
<_IO_2_1_stderr_>, 
    comparable=@0x600ffffffffee790: 0x60000000002f3870 "tree-omplower", 
    hash=1802803413) at ../../gcc/hash-map.h:57
57          static bool is_empty (const hash_entry &e) { return 
Traits::is_empty (e); }
(gdb) bt
#0  0x4000000000b417c1 in 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 (this=0x2000000000988140 
<_IO_2_1_stderr_>, 
    comparable=@0x600ffffffffee790: 0x60000000002f3870 "tree-omplower", 
    hash=1802803413) at ../../gcc/hash-map.h:57
#1  0x4000000000b28e30 in hash_map<nofree_string_hash, opt_pass*, 
simple_hashmap_traits<default_hash_traits<nofree_string_hash>, opt_pass*> 
>::get (
    k=@0x600ffffffffee790: 0x60000000002f3870 "tree-omplower", 
    this=0x2000000000988140 <_IO_2_1_stderr_>) at ../../gcc/hash-map.h:150
#2  gcc::pass_manager::register_pass_name (this=0x60000000002ea0c0, 
    pass=0x60000000002e7750, name=0x60000000002f3870 "tree-omplower")
    at ../../gcc/passes.c:857
#3  0x4000000000b29850 in gcc::pass_manager::register_one_dump_file (
    this=0x60000000002ea0c0, pass=0x60000000002e7750) at ../../gcc/passes.c:827
#4  0x4000000000b29b00 in gcc::pass_manager::register_dump_files (
    this=0x60000000002ea0c0, pass=0x60000000002e7750) at ../../gcc/passes.c:839
#5  0x4000000000b3f4b0 in gcc::pass_manager::pass_manager (
    this=0x60000000002ea0c0, ctxt=<optimized out>) at ../../gcc/passes.c:1607
#6  0x400000000049f110 in gcc::context::context (this=0x60000000002a2f00)
    at ../../gcc/context.c:39
#7  0x400000000017def0 in general_init (init_signals=<optimized out>, 
    argv0=<optimized out>) at ../../gcc/toplev.c:1159
#8  toplev::main (this=0x600ffffffffef0e0, argc=2, argv=0x600ffffffffef388)
    at ../../gcc/toplev.c:2089
#9  0x4000000000183e90 in main (argc=2, argv=0x600ffffffffef388)
    at ../../gcc/main.c:39
(gdb) f 5
#5  0x4000000000b3f4b0 in gcc::pass_manager::pass_manager (
    this=0x60000000002ea0c0, ctxt=<optimized out>) at ../../gcc/passes.c:1607
1607      register_dump_files (all_lowering_passes);
(gdb) p m_name_to_pass_map
$13 = (hash_map<nofree_string_hash, opt_pass*, 
simple_hashmap_traits<default_hash_traits<nofree_string_hash>, opt_pass*> > *) 
0x2000000000988140 <_IO_2_1_stderr_>

Andreas.

-- 
Andreas Schwab, sch...@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

Reply via email to