/* { dg-do run } */ | |
/* { dg-options "-fwrapv" } */ | |
void foo( unsigned long long bb, unsigned short tn, unsigned e, unsigned* w ); | |
void foo( unsigned long long bb, unsigned short tn, unsigned e, unsigned* w ) | |
{ | |
unsigned n = tn + bb; | |
do { | |
e = (e > n) ? e : *w; | |
n -= (e > n) ? n : e; | |
if (*w) | |
*w = 0; | |
} while ( n ); | |
} | |
int main() | |
{ | |
unsigned w = 0; | |
foo( 0, 0, 0, &w ); | |
return 0; | |
} |