summaryrefslogtreecommitdiff
path: root/inline.h
diff options
context:
space:
mode:
authorKarl Williamson <khw@cpan.org>2018-01-28 10:02:11 -0700
committerKarl Williamson <khw@cpan.org>2018-01-29 16:33:03 -0700
commit0b08cab0fc46a5f381ca18a451f55cf12c81d966 (patch)
tree516294b3147d650b5c4289b0355cf3e3a2c8daba /inline.h
parent7cf2d6c7983ca87681477f57869bf0779d8b2604 (diff)
downloadperl-0b08cab0fc46a5f381ca18a451f55cf12c81d966.tar.gz
Don't use variant_byte_number on MSVC6
See [perl #132766]
Diffstat (limited to 'inline.h')
-rw-r--r--inline.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/inline.h b/inline.h
index 976d4711bc..769e0532ac 100644
--- a/inline.h
+++ b/inline.h
@@ -401,6 +401,8 @@ S_is_utf8_invariant_string_loc(const U8* const s, STRLEN len, const U8 ** ep)
| ( ( (PTR2nat(x) \
& PERL_WORD_BOUNDARY_MASK) >> 2))))
+# ifndef USING_MSVC6
+
/* Do the word-at-a-time iff there is at least one usable full word. That
* means that after advancing to a word boundary, there still is at least a
* full word left. The number of bytes needed to advance is 'wordsize -
@@ -458,7 +460,8 @@ S_is_utf8_invariant_string_loc(const U8* const s, STRLEN len, const U8 ** ep)
} while (x + PERL_WORDSIZE <= send);
}
-#endif
+# endif /* End of ! MSVC6 */
+#endif /* End of ! EBCDIC */
/* Process per-byte */
while (x < send) {
@@ -476,7 +479,10 @@ S_is_utf8_invariant_string_loc(const U8* const s, STRLEN len, const U8 ** ep)
return TRUE;
}
-#ifndef EBCDIC
+#if ! defined(EBCDIC) && ! defined(USING_MSVC6)
+
+/* Apparent compiler error with MSVC6, so can't use this function. All callers
+ * to it must be compiled to use the EBCDIC fallback on MSVC6 */
PERL_STATIC_INLINE unsigned int
S__variant_byte_number(PERL_UINTMAX_T word)