...
Code Block | ||
---|---|---|
| ||
int si1,; int si2,; int sresult; sresult = si1 << si2; |
...
Code Block | ||
---|---|---|
| ||
unsigned int ui1,; unsigned int ui2,; unsigned int sresult; if ((ui2 >= sizeof(int)*CHAR_BIT) || (ui1 > (INT_MAX >> ui2)) ) { /* handle error condition */ } else { sresult = ui1 << ui2; } |
...
Code Block | ||
---|---|---|
| ||
unsigned int ui1,; unsigned int ui2,; unsigned int uresult; uresult = ui1 << ui2; |
...
Code Block | ||
---|---|---|
| ||
unsigned int ui1, unsigned int ui2, unsigned int uresult; /* modulo behavior is allowed on mod1 and mod2 by exception */ unsigned int mod1, unsigned int mod2; /* ... */ if ( (ui2 >= sizeof(unsigned int)*CHAR_BIT) || (ui1 > (UINT_MAX >> ui2))) ) { /* handle error condition */ } else { uresult = ui1 << ui2; } if (mod2 >= sizeof(unsigned int)*CHAR_BIT) { /* handle error condition */ } else { /* modulo behavior is allowed by exception */ uresult = mod1 << mod2; } |
...