------- Comment #1 from ghazi at gcc dot gnu dot org  2007-06-12 20:37 -------
This worked as of June 9th, so it's recent.

The SEGV happens because "df" (used in the macro DF_REG_DEF_COUNT) is nil:



signal SEGV (no mapping at the fault address) in sparc_check_64 at line 7677 in
file "sparc.c"
 7677         && DF_REG_DEF_COUNT (REGNO (y)) == 1)
(dbx) where
=>[1] sparc_check_64(x = 0xff168620, insn = 0xff123810), line 7677 in "sparc.c"
  [2] output_v8plus_shift(operands = 0x1f07484, insn = 0xff123810, opcode =
0x1e8e364 "srax"), line 7741 in "sparc.c"
  [3] output_363(operands = 0x1f07484, insn = 0xff123810), line 6499 in
"sparc.md"
  [4] get_insn_template(code = 363, insn = 0xff123810), line 1584 in "final.c"
  [5] final_scan_insn(insn = 0xff123810, file = 0x1f013c8, optimize = 2,
nopeepholes = 0, seen = 0xffbff22c), line 2460 in "final.c"
  [6] final(first = 0xff123658, file = 0x1f013c8, optimize = 2), line 1569 in
"final.c"
  [7] rest_of_handle_final(), line 3973 in "final.c"
  [8] execute_one_pass(pass = 0x1ec37ec), line 1124 in "passes.c"
  [9] execute_pass_list(pass = 0x1ec37ec), line 1177 in "passes.c"
  [10] execute_pass_list(pass = 0x1ec3d94), line 1178 in "passes.c"
  [11] execute_pass_list(pass = 0x1ec3d60), line 1178 in "passes.c"
  [12] tree_rest_of_compilation(fndecl = 0xff154d20), line 406 in
"tree-optimize.c"
  [13] c_expand_body(fndecl = 0xff154d20), line 4331 in "c-common.c"
  [14] cgraph_expand_function(node = 0xff15fb30), line 1073 in "cgraphunit.c"
  [15] cgraph_expand_all_functions(), line 1142 in "cgraphunit.c"
  [16] cgraph_optimize(), line 1349 in "cgraphunit.c"
  [17] c_write_global_declarations(), line 7911 in "c-decl.c"
  [18] compile_file(), line 1064 in "toplev.c"
  [19] do_compile(), line 2150 in "toplev.c"
  [20] toplev_main(argc = 25U, argv = 0xffbff92c), line 2182 in "toplev.c"
  [21] main(argc = 25, argv = 0xffbff92c), line 35 in "main.c"
(dbx) list
 7677         && DF_REG_DEF_COUNT (REGNO (y)) == 1)
 7678       set_once = 1;
 7679
 7680     if (insn == 0)
 7681       {
 7682         if (set_once)
 7683           insn = get_last_insn_anywhere ();
 7684         else
 7685           return 0;
 7686       }
(dbx) print df
df = (nil)
(dbx)


-- 


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

Reply via email to