This is the mail archive of the glibc-bugs-regex@sourceware.org mailing list for the glibc 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]

[Bug regex/1278] regex undefined behavior with shifting past word length


------- Additional Comments From eggert at gnu dot org  2005-09-01 22:29 -------
The last hunk is purely for ports to ones' complement and
signed-magnitude hosts.  It has no effect in the normal case.

For example, on a one's complement host, ~0 has the numeric value
zero, i.e., ~0 == 0.  Also, ~0 is of type int.  When ~0 is converted
to unsigned int, it is converted by value, not by bit-pattern.  (The C
Standard requires this.)  Hence ((unsigned) ~0) is equivalent to
((unsigned) 0), which in turn is equivalent to 0u, which is zero.

The same problem occurs with signed-magnitude hosts.  It also occurs
with unsigned short int (the type being used here).

Admittedly this is a minor point since such hosts are rare, but it's
easy to do portably so we might as well do it that way.


-- 


http://sources.redhat.com/bugzilla/show_bug.cgi?id=1278

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.


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