This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/25328] [4.0/4.1 regression] ICE in get_indirect_ref_operands, at tree-ssa-operands.c:1453
- From: "law at redhat dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 21 Dec 2005 04:44:31 -0000
- Subject: [Bug middle-end/25328] [4.0/4.1 regression] ICE in get_indirect_ref_operands, at tree-ssa-operands.c:1453
- References: <bug-25328-5724@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #6 from law at redhat dot com 2005-12-21 04:44 -------
Definitely a type problem. The Obj-C front-end is playing it too lose with
types.
main (argc, argv)
{
char msg[100];
int status;
const unsigned char D.1189;
char * msg.0;
# BLOCK 0
# PRED: ENTRY (fallthru)
# msg_3 = V_MUST_DEF <msg_2>;
msg = "";
msg.0_4 = &msg; /* Mis-matched types here */
# VUSE <msg_3>;
D.1189_5 = *msg.0_4; /* And again here. */
return;
# SUCC: EXIT
}
I *think* the right code is that msg.0 should have type
const unsigned char *. In the assignment to msg.0_4 the
RHS should be casted to const unsigned char *
This is a front-end problem as far as I can tell.
Jeff
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25328