This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: [Fwd: CVS trunk bootstrap failure on alphaev6-unknown-linux-gnu]


> This piece of code aborts:
> 
> /* Generate and return an insn body to add Y to X.  */
> 
> rtx                                                               
> gen_add2_insn (x, y)
>      rtx x, y;
> {
>   int icode = (int) add_optab->handlers[(int) GET_MODE (x)].insn_code;
> 
>   if (!
> ((*insn_data[icode].operand[0].predicate)                           
>          (x, insn_data[icode].operand[0].mode))
>       || ! ((*insn_data[icode].operand[1].predicate)
>             (x, insn_data[icode].operand[1].mode))
>       || ! ((*insn_data[icode].operand[2].predicate)
>             (y, insn_data[icode].operand[2].mode)))
>     abort ();
> 
> It aborts because it's called with a (const_int 65535 [0xffff]) as y
> value, which doesn't have a mode.

Huh?  The add?I predicates should allow a CONST_INT when passed their
respective integer modes.  So where does the mode of y come in?


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]