/* { dg-do run } */ | |
/* { dg-options "-ftrapv" } */ | |
extern void abort (void); | |
unsigned long | |
foo (long i, long j) | |
{ | |
/* We may not fold this to (unsigned long)(i * j). */ | |
return -(unsigned long)(i * -j); | |
} | |
int main() | |
{ | |
if (foo (-__LONG_MAX__ - 1, -1) != -(unsigned long)(-__LONG_MAX__ - 1)) | |
abort (); | |
return 0; | |
} |