blob: 7f2a3caac6b579f082bafb64bfc4f16b20084675 [file] [log] [blame]
Index: common/unicode/unistr.h
===================================================================
--- common/unicode/unistr.h (revision 75773)
+++ common/unicode/unistr.h (working copy)
@@ -4089,7 +4089,7 @@
#if defined(__GNUC__)
// Ticket #7039: Clip length to the maximum valid length to the end of addressable memory given the starting address
// This is only an issue when using GCC and certain optimizations are turned on.
- return extract(start, _length, dst, dst!=0 ? ((dst >= (char*)((size_t)-1) - UINT32_MAX) ? (((char*)UINT32_MAX) - dst) : UINT32_MAX) : 0, codepage);
+ return extract(start, _length, dst, dst!=0 ? ((dst >= (char*)((size_t)-1) - UINT32_MAX) ? static_cast<unsigned int>((((char*)UINT32_MAX) - dst)) : UINT32_MAX) : 0, codepage);
#else
return extract(start, _length, dst, dst!=0 ? 0xffffffff : 0, codepage);
#endif
Index: source/i18n/colldata.cpp
===================================================================
--- source/i18n/colldata.cpp (revision 122103)
+++ source/i18n/colldata.cpp (working copy)
@@ -236,9 +236,14 @@
int32_t newMax = listMax + STRING_LIST_BUFFER_SIZE;
UnicodeString *newStrings = new UnicodeString[newMax];
+ if (newStrings == NULL) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ return;
+ }
+ for (int32_t i=0; i<listSize; ++i) {
+ newStrings[i] = strings[i];
+ }
- uprv_memcpy(newStrings, strings, listSize * sizeof(UnicodeString));
-
#ifdef INSTRUMENT_STRING_LIST
int32_t _h = listSize / STRING_LIST_BUFFER_SIZE;
Index: source/i18n/decNumber.c
===================================================================
--- source/i18n/decNumber.c (revision 122360)
+++ source/i18n/decNumber.c (working copy)
@@ -1392,6 +1392,8 @@
/* fastpath in decLnOp. The final division is done to the requested */
/* precision. */
/* ------------------------------------------------------------------ */
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Warray-bounds"
U_CAPI decNumber * U_EXPORT2 uprv_decNumberLog10(decNumber *res, const decNumber *rhs,
decContext *set) {
uInt status=0, ignore=0; /* status accumulators */
@@ -1527,6 +1529,7 @@
#endif
return res;
} /* decNumberLog10 */
+#pragma clang diagnostic pop
/* ------------------------------------------------------------------ */
/* decNumberMax -- compare two Numbers and return the maximum */
@@ -2800,6 +2803,8 @@
/* result setexp(approx, e div 2) % fix exponent */
/* end sqrt */
/* ------------------------------------------------------------------ */
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Warray-bounds"
U_CAPI decNumber * U_EXPORT2 uprv_decNumberSquareRoot(decNumber *res, const decNumber *rhs,
decContext *set) {
decContext workset, approxset; /* work contexts */
@@ -3129,6 +3134,7 @@
#endif
return res;
} /* decNumberSquareRoot */
+#pragma clang diagnostic pop
/* ------------------------------------------------------------------ */
/* decNumberSubtract -- subtract two Numbers */
@@ -5584,6 +5590,8 @@
/* 5. The static buffers are larger than might be expected to allow */
/* for calls from decNumberPower. */
/* ------------------------------------------------------------------ */
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Warray-bounds"
decNumber * decLnOp(decNumber *res, const decNumber *rhs,
decContext *set, uInt *status) {
uInt ignore=0; /* working status accumulator */
@@ -5805,6 +5813,7 @@
/* [status is handled by caller] */
return res;
} /* decLnOp */
+#pragma clang diagnostic pop
/* ------------------------------------------------------------------ */
/* decQuantizeOp -- force exponent to requested value */