On mips64-linux-gnu the following testcase aborts:
void abort (void);
__attribute__ ((noinline)) void
f (int i)
{
if (i != 0x87654321)
abort ();
asm ("");
}
__attribute__ ((noinline)) void
g (long long a)
{
f (a);
asm ("");
}
main ()
{
g (0x1234567887654321ll);
return 0;
}
--
Summary: [4.1/4.2/4.3/4.4 Regression] Truncation optimization in
combine can remove necessary truncations
Product: gcc
Version: 4.4.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: middle-end
AssignedTo: nemet at gcc dot gnu dot org
ReportedBy: nemet at gcc dot gnu dot org
GCC target triplet: mips64-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36194