avoid overflowing a 32-bit signed int
authorTony Cook <tony@develop-help.com>
Mon, 16 Jan 2012 10:00:00 +0000 (21:00 +1100)
committerTony Cook <tony@develop-help.com>
Mon, 16 Jan 2012 22:50:27 +0000 (09:50 +1100)
and the associated warning from Solaris C:

"regcomp.c", line 5294: warning: integer overflow detected: op "<<"

regexp.h

index 5ee6448..26d2cd9 100644 (file)
--- a/regexp.h
+++ b/regexp.h
@@ -379,7 +379,7 @@ get_regex_charset_name(const U32 flags, STRLEN* const lenp)
 #define RXf_START_ONLY         (1<<(RXf_BASE_SHIFT+19)) /* Pattern is /^/ */
 #define RXf_SKIPWHITE          (1<<(RXf_BASE_SHIFT+20)) /* Pattern is for a split / / */
 #define RXf_WHITE              (1<<(RXf_BASE_SHIFT+21)) /* Pattern is /\s+/ */
-#define RXf_NULL               (1<<(RXf_BASE_SHIFT+22)) /* Pattern is // */
+#define RXf_NULL               (1U<<(RXf_BASE_SHIFT+22)) /* Pattern is // */
 #if RXf_BASE_SHIFT+22 > 31
 #   error Too many RXf_PMf bits used.  See regnodes.h for any spare in middle
 #endif