This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/37553] New: ICE in build_c_cast
- From: "patrakov at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 17 Sep 2008 06:25:08 -0000
- Subject: [Bug c++/37553] New: ICE in build_c_cast
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
This code triggers an ICE in gcc-4.3.1 on i686 when compiled with g++:
typedef unsigned int ui32;
__extension__ typedef unsigned long long int ui64;
typedef ui32 __attribute__ ((__may_alias__)) ui32a;
typedef ui64 __attribute__ ((__may_alias__)) ui64a;
union u_u32
{
ui32a v;
} __attribute__ ((__may_alias__));
union u_u64
{
ui64a v;
struct
{
union u_u32 lo32, hi32;
} u;
} __attribute__ ((__may_alias__));
void
out_long (ui64 longVal)
{
if ((*(union u_u64 *) &longVal).u.lo32.v < 0x10000000ul)
{
if ((ui32) ((*(union u_u64 *) &longVal).u.lo32.v) < 0x4000u)
{
/* do something useful */
}
}
}
longs3.c: In function 'void out_long(ui64)':
longs3.c:24: internal compiler error: in build_c_cast, at cp/typeck.c:5631
--
Summary: ICE in build_c_cast
Product: gcc
Version: 4.3.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: patrakov at gmail dot com
GCC build triplet: i686-pc-linux-gnu
GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37553