[Bug ada/36957] ACATS ce3801b ICE emit_move_insn, at expr.c:3381 post tuple merge

2008-07-28 Thread laurent at guerby dot net


--- Comment #1 from laurent at guerby dot net  2008-07-28 18:29 ---
(gdb) f 2
#2  0x007886d4 in emit_move_insn (x=0x2b6f9e60, y=0x2b6f9d40)
at ../../trunk/gcc/expr.c:3380
3380  gcc_assert (mode != BLKmode
(gdb) debug_rtx(x)
Undefined command: debug_rtx.  Try help.
(gdb) call debug_rtx(x)
(reg:QI 64 [ result ])
(gdb) call debug_rtx(y)


-- 


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



[Bug ada/36957] ACATS ce3801b ICE emit_move_insn, at expr.c:3381 post tuple merge

2008-07-28 Thread laurent at guerby dot net


--- Comment #2 from laurent at guerby dot net  2008-07-28 18:29 ---
(reg:HI 59 [ T12b ])


-- 


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



[Bug ada/36957] ACATS ce3801b ICE emit_move_insn, at expr.c:3381 post tuple merge

2008-07-28 Thread rguenth at gcc dot gnu dot org


--- Comment #3 from rguenth at gcc dot gnu dot org  2008-07-28 19:19 ---
The problem is that the cast in

item = (ce3801b__B_1__fix_io__num___XF_1_10_1_16) iftmp.130;

is stripped away.  item (QImode) is of type

type integer_type 0xb7da3000 ce3801b__B_1__fix_io__num___XF_1_10_1_16
type integer_type 0xb7d9de38 ce3801b__B_1__TfixB___XF_1_10_1_16
sizes-gimplified public HI
size integer_cst 0xb7cc055c constant 16
unit size integer_cst 0xb7cc0578 constant 2
align 16 symtab 0 alias set -1 canonical type 0xb7d9de38 precision
16 min integer_cst 0xb7d9e348 -32768 max integer_cst 0xb7d9e47c 32767 RM
size integer_cst 0xb7cc055c 16
sizes-gimplified unsigned QI
size integer_cst 0xb7cc047c constant 8
unit size integer_cst 0xb7cc0498 constant 1
align 8 symtab 0 alias set 0 canonical type 0xb7da3000 precision 8 min
integer_cst 0xb7d9e4d0 16 max integer_cst 0xb7d9e4ec 160 RM size
integer_cst 0xb7cc047c 8

and iftmp.130 is of its base-type (HImode).

This happens in fold_gimple_assign

case GIMPLE_UNARY_RHS:
  result = fold_unary (subcode,
   gimple_expr_type (stmt),
   gimple_assign_rhs1 (stmt));

where gimple_expr_type always returns the base-type and so makes this
a no-op cast.


-- 


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



[Bug ada/36957] ACATS ce3801b ICE emit_move_insn, at expr.c:3381 post tuple merge

2008-07-28 Thread rguenth at gcc dot gnu dot org


--- Comment #4 from rguenth at gcc dot gnu dot org  2008-07-28 19:21 ---
Mine.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |rguenth at gcc dot gnu dot
   |dot org |org
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2008-07-28 19:21:05
   date||


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



[Bug ada/36957] ACATS ce3801b ICE emit_move_insn, at expr.c:3381 post tuple merge

2008-07-28 Thread rguenth at gcc dot gnu dot org


--- Comment #5 from rguenth at gcc dot gnu dot org  2008-07-28 20:33 ---
Subject: Bug 36957

Author: rguenth
Date: Mon Jul 28 20:32:32 2008
New Revision: 138217

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=138217
Log:
2008-07-28  Richard Guenther  [EMAIL PROTECTED]

PR tree-optimization/36957
* tree-flow.h (tree_ssa_useless_type_conversion): Remove.
(useless_type_conversion_p): Remove.
(types_compatible_p): Remove.
* gimple.h (tree_ssa_useless_type_conversion): Declare.
(useless_type_conversion_p): Declare.
(types_compatible_p): Declare.
(gimple_expr_type): Return the base type only if it is
trivially convertible to the subtype.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/gimple.h
trunk/gcc/tree-flow.h


-- 


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



[Bug ada/36957] ACATS ce3801b ICE emit_move_insn, at expr.c:3381 post tuple merge

2008-07-28 Thread rguenth at gcc dot gnu dot org


--- Comment #6 from rguenth at gcc dot gnu dot org  2008-07-28 20:33 ---
Fixed.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED
   Target Milestone|--- |4.4.0


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