This commit is contained in:
hsutter 2016-01-07 07:17:14 -08:00
parent e4f908093d
commit 935a5ee325

View File

@ -7459,8 +7459,8 @@ Statement rules:
Arithmetic rules: Arithmetic rules:
* [ES.100: Don't mix signed and unsigned arithmetic](#Res-mix) * [ES.100: Don't mix signed and unsigned arithmetic](#Res-mix)
* [ES.101: use unsigned types for bit manipulation](#Res-unsigned) * [ES.101: Use unsigned types for bit manipulation](#Res-unsigned)
* [ES.102: Used signed types for arithmetic](#Res-signed) * [ES.102: Use signed types for arithmetic](#Res-signed)
* [ES.103: Don't overflow](#Res-overflow) * [ES.103: Don't overflow](#Res-overflow)
* [ES.104: Don't underflow](#Res-underflow) * [ES.104: Don't underflow](#Res-underflow)
* [ES.105: Don't divide by zero](#Res-zero) * [ES.105: Don't divide by zero](#Res-zero)
@ -9229,7 +9229,7 @@ This precludes consistency.
Compilers already know and sometimes warn. Compilers already know and sometimes warn.
### <a name="Res-unsigned"></a>ES.101: use unsigned types for bit manipulation ### <a name="Res-unsigned"></a>ES.101: Use unsigned types for bit manipulation
##### Reason ##### Reason
@ -9239,23 +9239,23 @@ Unsigned types support bit manipulation without surprises from sign bits.
??? ???
**Exception**: Use unsigned types if you really want modulo arithmetic. **Exception**: Use signed types if you really want modulo arithmetic.
##### Enforcement ##### Enforcement
??? ???
### <a name="Res-signed"></a>ES.102: Used signed types for arithmetic ### <a name="Res-signed"></a>ES.102: Use signed types for arithmetic
##### Reason ##### Reason
Unsigned types support bit manipulation without surprises from sign bits. Signed types support modulo arithmetic without surprises from lack of sign bits.
##### Example ##### Example
??? ???
**Exception**: Use unsigned types if you really want modulo arithmetic. **Exception**: Use unsigned types if you really want bit manipulation.
##### Enforcement ##### Enforcement