On 12 Mar 2003 13:25:36 +0100, [EMAIL PROTECTED] (Lars Gullik Bjønnes) wrote:
> >With GCC 3.3. there are a couple of warnings in the regex lib. >The warnings is about of the type of the array index. >Warning about char being used as index. > >This patch fixes that. (by casting to unsigned int). Actually you are casting to unsigned char. That's safe whether plain chars are signed or not, because for 3.9.1/3 the range of nonnegative values of a signed integer type is a subrange of the corresponding unsigned integer type *and* you are converting only members of the basic execution character set (guaranteed to be non-negative by 2.2/3). For arbitrary characters (and plain char = signed char) though that's not a reassuring practice. Had I proposed the patch, I would have probably suggested adding 0 to trigger integral promotion; e.g.: class_map[ 0 + '_'] |= char_class_underscore; BTW I found the program confusing as to what kind of indexing is intended for class_map (because if one wants to use arbitrary chars to index an array one declares it as: T arr [CHAR_MAX - CHAR_MIN + 1]; and not as T arr [UCHAR_MAX + 1]; In either case, then I don't see why indexing by unsigned int, like in do_update_ctype). Also, the calls to memset look suspicious, but I've not investigated further. Genny. _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost