diff options
author | Eike Rathke <erack@redhat.com> | 2017-11-17 02:24:52 +0200 |
---|---|---|
committer | Eike Rathke <erack@redhat.com> | 2017-11-17 01:25:24 +0100 |
commit | 0f73433b13ba9e3f38193ddd86f4b9b767a36bb2 (patch) | |
tree | fc4ba8ff6f4bec273d50a4c51865b7420504f6e3 /external/icu/icu4c-ubsan.patch.1 | |
parent | eb8bd7f21103ed2349b44c954db977709de2e4ec (diff) |
Revert "Upgrade to ICU 60.1"
This reverts commit f643e1f687e27e7f46c53d7298772d4dddb3e660.
Failing in firebird, back to the drawing board..
Change-Id: I087d2fa6e81cf713458b1c9645edc7c1facf148c
Reviewed-on: https://gerrit.libreoffice.org/44843
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Eike Rathke <erack@redhat.com>
Diffstat (limited to 'external/icu/icu4c-ubsan.patch.1')
-rw-r--r-- | external/icu/icu4c-ubsan.patch.1 | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/external/icu/icu4c-ubsan.patch.1 b/external/icu/icu4c-ubsan.patch.1 index 9f6aa3fbc9f8..56594005e9d0 100644 --- a/external/icu/icu4c-ubsan.patch.1 +++ b/external/icu/icu4c-ubsan.patch.1 @@ -65,6 +65,18 @@ diff -ur icu.org/source/common/ubidiimp.h icu/source/common/ubidiimp.h #define REMOVE_ODD_BIT(x) ((x)&=~INDEX_ODD_BIT) #define GET_INDEX(x) ((x)&~INDEX_ODD_BIT) +diff -ur icu.org/source/common/ucharstriebuilder.cpp icu/source/common/ucharstriebuilder.cpp +--- icu.org/source/common/ucharstriebuilder.cpp 2017-02-03 19:57:23.000000000 +0100 ++++ icu/source/common/ucharstriebuilder.cpp 2017-04-21 22:46:25.375651159 +0200 +@@ -287,7 +287,7 @@ + + UCharsTrieBuilder::UCTLinearMatchNode::UCTLinearMatchNode(const UChar *units, int32_t len, Node *nextNode) + : LinearMatchNode(len, nextNode), s(units) { +- hash=hash*37+ustr_hashUCharsN(units, len); ++ hash=hash*37U+ustr_hashUCharsN(units, len); + } + + UBool diff -ur icu.org/source/common/ucmndata.cpp icu/source/common/ucmndata.cpp --- icu.org/source/common/ucmndata.cpp 2017-03-08 16:34:47.000000000 +0100 +++ icu/source/common/ucmndata.cpp 2017-04-21 22:46:25.376651159 +0200 @@ -89,3 +101,71 @@ diff -ur icu.org/source/common/ucmndata.h icu/source/common/ucmndata.h } UDataOffsetTOC; /** +diff -ur icu.org/source/common/unicode/stringtriebuilder.h icu/source/common/unicode/stringtriebuilder.h +--- icu.org/source/common/unicode/stringtriebuilder.h 2017-03-10 23:01:34.000000000 +0100 ++++ icu/source/common/unicode/stringtriebuilder.h 2017-04-21 22:47:43.395634383 +0200 +@@ -276,7 +276,7 @@ + void setValue(int32_t v) { + hasValue=TRUE; + value=v; +- hash=hash*37+v; ++ hash=hash*37U+v; + } + protected: + UBool hasValue; +@@ -307,7 +307,7 @@ + class LinearMatchNode : public ValueNode { + public: + LinearMatchNode(int32_t len, Node *nextNode) +- : ValueNode((0x333333*37+len)*37+hashCode(nextNode)), ++ : ValueNode((0x333333U*37+len)*37+hashCode(nextNode)), + length(len), next(nextNode) {} + virtual UBool operator==(const Node &other) const; + virtual int32_t markRightEdgesFirst(int32_t edgeNumber); +@@ -342,7 +342,7 @@ + equal[length]=NULL; + values[length]=value; + ++length; +- hash=(hash*37+c)*37+value; ++ hash=(hash*37U+c)*37+value; + } + // Adds a unit which leads to another match node. + void add(int32_t c, Node *node) { +@@ -350,7 +350,7 @@ + equal[length]=node; + values[length]=0; + ++length; +- hash=(hash*37+c)*37+hashCode(node); ++ hash=(hash*37U+c)*37+hashCode(node); + } + protected: + Node *equal[kMaxBranchLinearSubNodeLength]; // NULL means "has final value". +@@ -365,7 +365,7 @@ + class SplitBranchNode : public BranchNode { + public: + SplitBranchNode(char16_t middleUnit, Node *lessThanNode, Node *greaterOrEqualNode) +- : BranchNode(((0x555555*37+middleUnit)*37+ ++ : BranchNode(((0x555555U*37+middleUnit)*37+ + hashCode(lessThanNode))*37+hashCode(greaterOrEqualNode)), + unit(middleUnit), lessThan(lessThanNode), greaterOrEqual(greaterOrEqualNode) {} + virtual UBool operator==(const Node &other) const; +@@ -382,7 +382,7 @@ + class BranchHeadNode : public ValueNode { + public: + BranchHeadNode(int32_t len, Node *subNode) +- : ValueNode((0x666666*37+len)*37+hashCode(subNode)), ++ : ValueNode((0x666666U*37+len)*37+hashCode(subNode)), + length(len), next(subNode) {} + virtual UBool operator==(const Node &other) const; + virtual int32_t markRightEdgesFirst(int32_t edgeNumber); +diff -ur icu.org/source/i18n/collationdatareader.cpp icu/source/i18n/collationdatareader.cpp +--- icu.org/source/i18n/collationdatareader.cpp 2017-01-20 01:20:31.000000000 +0100 ++++ icu/source/i18n/collationdatareader.cpp 2017-04-21 22:46:25.380651158 +0200 +@@ -419,6 +419,7 @@ + tailoring.data, ts, fastLatinPrimaries, UPRV_LENGTHOF(fastLatinPrimaries)); + if(options == ts.options && ts.variableTop != 0 && + reorderCodesLength == ts.reorderCodesLength && ++ reorderCodesLength != 0 && + uprv_memcmp(reorderCodes, ts.reorderCodes, reorderCodesLength * 4) == 0 && + fastLatinOptions == ts.fastLatinOptions && + (fastLatinOptions < 0 || |