This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Do C++ signed types have modulo semantics?


Morten Welinder <mwelinder@gmail.com> writes:

| | signed types are undefined on overflow. [5/5] and [3.9.1/2,3]
| 
| > But a compiler could define them to be modulo -- that is the whole
| > point.  The paragraph does not say they don't "modulo".
| 
| True, but you are going to have to deal with the run-time version of
| 
|     (int)0x80000000 / -1
| 
| which is unpleasant in the sense that Intel processors will trap and not
| do anything modulo-like.

If such things really yields undefined behaviour on Intel's then
numeric_limits<> for Intel's should be changed accoordingly.  It does
not imply that numeric_limits<>::is_modulo is false for all targets
supported by GCC.

-- Gaby


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]