On 04/11/13 01:59, Tom de Vries wrote:
> On 29/10/13 14:54, Jakub Jelinek wrote:
>> +/* Return true if all imm uses of VAR are either in STMT, or
>> +   feed (optionally through a chain of single imm uses) GIMPLE_COND
>> +   in basic block COND_BB.  */
>> +
>> +static bool
>> +all_imm_uses_in_stmt_or_feed_cond (tree var, gimple stmt, basic_block 
>> cond_bb)
>> +{
>> +  use_operand_p use_p, use2_p;
>> +  imm_use_iterator iter;
>> +
>> +  FOR_EACH_IMM_USE_FAST (use_p, iter, var)
>> +    if (USE_STMT (use_p) != stmt)
>> +      {
>> +    gimple use_stmt = USE_STMT (use_p);
>> +    if (is_gimple_debug (use_stmt))
>> +      continue;
>> +    while (is_gimple_assign (use_stmt)
>> +           && single_imm_use (gimple_assign_lhs (use_stmt),
>> +                              &use2_p, &use_stmt))
>> +      ;
>> +    if (gimple_code (use_stmt) != GIMPLE_COND
>> +        || gimple_bb (use_stmt) != cond_bb)
>> +      return false;
>> +      }
>> +  return true;
>> +}
>> +
> 
> Jakub,
> 
> with g++.dg/torture/pr54684.C and -fno-tree-tail-merge, I run into a sigsegv
> because of gimple_code (use_stmt) being called with use_stmt == NULL.
> 

It's a duplicate of PR58978 - '[4.9 Regression] ICE: Segmentation fault'
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58978

Thanks,
- Tom

Reply via email to