------- Comment #10 from ro at techfak dot uni-bielefeld dot de  2008-10-31 
13:27 -------
Subject: Re:  [4.4 regression] cc1plus SEGV compiling strstream.cc on Tru64
UNIX

Since native reghunting was so slow, I've finally switched to trying with a
cross compiler (from Solaris 10/x86), and could reproduce the problem.  It
even turned out that there are two separate breakages involved.  The first
is caused by this change:

2008-04-01  Jan Hubicka  <[EMAIL PROTECTED]>

       * function.c (free_after_compilation): Free epilogue_delay_list.
       (prepare_function_start): Assert that previous compilation was freed.

Since that change, the first gcc_assert() in prepare_function_start()
triggers:

Breakpoint 1, fancy_abort (file=0x8919114
"/vol/gcc/src/gcc-reghunt/gcc/function.c", line=3940, function=0x89196cc
"prepare_function_start") at /vol/gcc/src/gcc-reghunt/gcc/diagnostic.c:654
(gdb) where
#0  fancy_abort (file=0x8919114 "/vol/gcc/src/gcc-reghunt/gcc/function.c",
line=3940, function=0x89196cc "prepare_function_start") at
/vol/gcc/src/gcc-reghunt/gcc/diagnostic.c:654
#1  0x08424619 in prepare_function_start () at
/vol/gcc/src/gcc-reghunt/gcc/function.c:3940
#2  0x08424746 in init_function_start (subr=0xfee57620) at
/vol/gcc/src/gcc-reghunt/gcc/function.c:3988
#3  0x085c711e in tree_rest_of_compilation (fndecl=0xfee57620) at
/vol/gcc/src/gcc-reghunt/gcc/tree-optimize.c:408
#4  0x08783ec9 in cgraph_expand_function (node=0xfedbef3c) at
/vol/gcc/src/gcc-reghunt/gcc/cgraphunit.c:1157
#5  0x0878573a in cgraph_optimize () at
/vol/gcc/src/gcc-reghunt/gcc/cgraphunit.c:1220
#6  0x0816255f in cp_write_global_declarations () at
/vol/gcc/src/gcc-reghunt/gcc/cp/decl2.c:3471
#7  0x0855617e in compile_file () at /vol/gcc/src/gcc-reghunt/gcc/toplev.c:971
#8  0x08557b7c in do_compile () at /vol/gcc/src/gcc-reghunt/gcc/toplev.c:2161
#9  0x08557be2 in toplev_main (argc=2, argv=0x80476f8) at
/vol/gcc/src/gcc-reghunt/gcc/toplev.c:2193
#10 0x0828565f in main (argc=2, argv=0x80476f8) at
/vol/gcc/src/gcc-reghunt/gcc/main.c:35

Later, the following change

2008-04-03  Jan Hubicka  <[EMAIL PROTECTED]>

       PR tree-optimization/35795
       * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
       * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
       * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
       * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
       * score/score3.c (score3_output_mi_thunk): Likewise.
       * score/score7.c (score7_output_mi_thunk): Likewise.
       * mips/mips.c (mips_output_mi_thunk): Likewise.

broke it even more and introduced the SEGV described in the original PR.

If I disable the gcc_assert() and remove the free_after_compilation() at the
end of alpha_output_mi_thunk_osf(), I'm finally able to compile my
minimized testcase and bootstrap mainline on alpha-dec-osf5.1b.

Since your two changes introduced this breakage and it is easily
reproducible in a cross compiler, could you please investigate and fix
this?

Thanks.
        Rainer


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36851

Reply via email to