This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug bootstrap/63545] ICE building GCC hash_table<cselib_hasher,xcallocator>::find_slot_with_hash
- From: "bill.klees at teamquest dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Fri, 17 Oct 2014 16:32:05 +0000
- Subject: [Bug bootstrap/63545] ICE building GCC hash_table<cselib_hasher,xcallocator>::find_slot_with_hash
- Auto-submitted: auto-generated
- References: <bug-63545-4 at http dot gcc dot gnu dot org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63545
--- Comment #3 from Bill Klees <bill.klees at teamquest dot com> ---
Simplified Preprocessed source fails with same error
----------------------------------------------------
typedef int TItype __attribute__((mode(TI)));
typedef int DItype __attribute__((mode(DI)));
typedef unsigned int UDItype __attribute__((mode(DI)));
struct DWstruct { DItype high, low; };
typedef union
{
struct DWstruct s;
TItype ll;
} DWunion;
TItype
__multi3(TItype u, TItype v)
{
const DWunion uu = { .ll = u };
const DWunion vv = { .ll = v };
DWunion w = { .ll = ({ DWunion __w; __asm__("xma.hu %0 = %2, %3,
f0\n\txma.l %1 = %2, %3, f0" : "=&f" (__w.s.high)
, "=f" (__w.s.low) : "f" (uu.s.low), "f" (vv.s.low)); __w.ll; }) };
w.s.high += ((UDItype)uu.s.low * (UDItype)vv.s.high
+ (UDItype)uu.s.high * (UDItype)vv.s.low);
return w.ll;
}