/* { dg-do run } */ | |
extern void abort(void); | |
struct a | |
{ | |
unsigned int bits : 1; | |
signed long val : ((sizeof(long) * 8) - 1); | |
}; | |
int Fnegate (struct a b) | |
{ | |
if ((-((long)b.val)) <= ((long) ((1UL << ((sizeof(long) * 8) - 2)) -1UL)) | |
&& (-((long)b.val)) >= (-(((long) ((1UL << ((sizeof(long) * 8) - 2)) -1UL))) - 1)) | |
return 0 ; | |
abort (); | |
} | |
int main () | |
{ | |
struct a b = {1, 1}; | |
Fnegate (b); | |
return 0; | |
} | |