function_parameter_expanded_from_pack_p() segfaults when compiling
20_util/reference_wrapper/24803.cc and IPA-SRA turned on.  The reason
is that it is presented a PARM_DECL that was created by IPA-SRA and
which does not have language specific data.

The backtrace is:
#0  0x00000000004b872f in function_parameter_expanded_from_pack_p
(param_decl=0x7ffff6a123f0, pack=0x7ffff6e59cf0)
    at /home/jamborm/gcc/mine/gcc/cp/pt.c:2679
#1  0x0000000000604090 in gen_subprogram_die (decl=0x7ffff6b2ca00,
context_die=<value optimized out>)
    at /home/jamborm/gcc/mine/gcc/dwarf2out.c:15459
#2  0x0000000000605c01 in gen_decl_die (decl=0x7ffff6b2ca00, origin=0x0,
context_die=0x7ffff734a2a0)
    at /home/jamborm/gcc/mine/gcc/dwarf2out.c:17538
#3  0x0000000000605268 in dwarf2out_abstract_function (decl=0x7ffff6b2ca00)
    at /home/jamborm/gcc/mine/gcc/dwarf2out.c:15624
#4  0x000000000090b11b in optimize_inline_calls (fn=0x7ffff6c3e900)
    at /home/jamborm/gcc/mine/gcc/tree-inline.c:3820
#5  0x00000000008e90af in cgraph_early_inlining () at
/home/jamborm/gcc/mine/gcc/ipa-inline.c:1593
#6  0x00000000006ecd04 in execute_one_pass (pass=0x10fe430) at
/home/jamborm/gcc/mine/gcc/passes.c:1295
#7  0x00000000006ecf45 in execute_pass_list (pass=0x10fe430) at
/home/jamborm/gcc/mine/gcc/passes.c:1344
#8  0x00000000006ecf57 in execute_pass_list (pass=0x10444a0) at
/home/jamborm/gcc/mine/gcc/passes.c:1345
#9  0x00000000006ed29e in execute_ipa_pass_list (pass=0x1044440) at
/home/jamborm/gcc/mine/gcc/passes.c:906
#10 0x00000000008e3c6c in cgraph_finalize_compilation_unit () at
/home/jamborm/gcc/mine/gcc/cgraphunit.c:1358
#11 0x00000000004e68c6 in cp_write_global_declarations () at
/home/jamborm/gcc/mine/gcc/cp/decl2.c:3754
#12 0x000000000077f0c0 in toplev_main (argc=39, argv=0x7fffffffd978) at
/home/jamborm/gcc/mine/gcc/toplev.c:1050
#13 0x00007ffff73f3586 in __libc_start_main () from /lib64/libc.so.6
#14 0x0000000000493bc9 in _start () at ../sysdeps/x86_64/elf/start.S:113

I am about to test a patch that will make the function return false
if DECL_ARTIFICIAL (param_decl) is true.


-- 
           Summary: function_parameter_expanded_from_pack_p segfaults when
                    passed a PARM_DECL created by IPA-SRA
           Product: gcc
           Version: 4.5.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: jamborm at gcc dot gnu dot org
        ReportedBy: jamborm at gcc dot gnu dot org
 GCC build triplet: x86_64-unknown-linux-gnu
  GCC host triplet: x86_64-unknown-linux-gnu
GCC target triplet: x86_64-unknown-linux-gnu


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

Reply via email to