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

--- Comment #5 from Joey Ye <joey.ye at arm dot com> ---
Here are some debug and log that might help to investigate.

Following one is suspecious to me, .MEM_18 is said to be defined a stmt that
doesn't look like it should do
(gdb) call debug_tree((*cfun->gimple_df->ssa_names).m_vecdata[18] )
 <ssa_name 0x8fcacf8
    type <void_type 0x89c08a0 void VOID
        align 8 symtab 0 alias set -1 canonical type 0x89c08a0
        pointer_to_this <pointer_type 0x89c0900>>
    visited var <var_decl 0x8fcc720 .MEM>def_stmt _11 = _10 (258);

    version 18>

dump.pre:
SCC consists of: .MEM_18
SCC consists of: _12
Value numbering _12 stmt = _12 = d_2(D)->core.get_parameter;
<then crash>

Last good dump:
univision_ug2828gfeff01_init (struct CTL_GFX_SEP_DRIVER_t * d, int depth)
{
  struct CTL_GFX_DRIVER_t * _7;
  long int _9;
  long int (*<Td17>) (int) _10;
  long int _11;
  long int (*<Td17>) (int) _12;
  long int _13;

  <bb 2>:
  d_2(D)->core.get_parameter = univision_ug2828gfeff01_get_parameter;
  _7 = &d_2(D)->core;
  ctl_gfx_driver = _7;
  MEM[(struct CTL_GFX_DRIVER_t *)d_2(D)].draw_pixel = 0B;
  _9 = univision_ug2828gfeff01_get_parameter (258);
  if (_9 == 8)
    goto <bb 3>;
  else
    goto <bb 4>;

  <bb 3>:
  d_2(D)->set_bounding = sep_set_bounding_8b;
  goto <bb 9>;

  <bb 4>:
  _10 = d_2(D)->core.get_parameter;
  _11 = _10 (258);
  if (_11 == 16)
    goto <bb 5>;
  else
    goto <bb 6>;

  <bb 5>:
  d_2(D)->set_bounding = sep_set_bounding_16b;
  goto <bb 9>;

  <bb 6>:
  _12 = d_2(D)->core.get_parameter;
  _13 = _12 (512);
  if (_13 > 255)
    goto <bb 7>;
  else
    goto <bb 8>;

  <bb 7>:
  d_2(D)->set_bounding = sep_set_bounding_16b;
  goto <bb 9>;

  <bb 8>:
  d_2(D)->set_bounding = sep_set_bounding_8b;

  <bb 9>:
  return;

}

Any hint to continue investigating?

Reply via email to