aboutsummaryrefslogtreecommitdiffstats
path: root/devel
diff options
context:
space:
mode:
authormi <mi@FreeBSD.org>2006-12-18 13:52:45 +0800
committermi <mi@FreeBSD.org>2006-12-18 13:52:45 +0800
commit929d735eb0b6b64a4f6c80b536cf8c753973e21b (patch)
tree5cc12e59322d939be75a46a828a9eb97f72a7a7d /devel
parent08beb50616569bfa7f395472dad97ed789d52a96 (diff)
downloadfreebsd-ports-graphics-929d735eb0b6b64a4f6c80b536cf8c753973e21b.tar.gz
freebsd-ports-graphics-929d735eb0b6b64a4f6c80b536cf8c753973e21b.tar.zst
freebsd-ports-graphics-929d735eb0b6b64a4f6c80b536cf8c753973e21b.zip
Work around the apparent bug in enum-to-enum casting in the 5.3 compiler
by using the int-to-enum casting instead. The port should now build on 5.3 and wherever else the self-tests were failing before. Submitted to vendor. Obtained from: Michael Cornelius
Diffstat (limited to 'devel')
-rw-r--r--devel/icu/files/patch-enum-bug50
-rw-r--r--devel/icu4/files/patch-enum-bug50
2 files changed, 100 insertions, 0 deletions
diff --git a/devel/icu/files/patch-enum-bug b/devel/icu/files/patch-enum-bug
new file mode 100644
index 00000000000..4c254481a0d
--- /dev/null
+++ b/devel/icu/files/patch-enum-bug
@@ -0,0 +1,50 @@
+--- i18n/regexcmp.h Thu Oct 20 10:54:02 2005
++++ i18n/regexcmp.h Mon Dec 11 13:42:54 2006
+@@ -38,9 +38,6 @@
+ // to the depth of parentheses nesting
+ // that is allowed in the rules.
+
+-enum EParseAction {dummy01, dummy02}; // Placeholder enum for the specifier for
+- // actions that are specified in the
+- // rule parsing state table.
+ struct RegexTableEl;
+ class RegexPattern;
+
+@@ -83,7 +80,7 @@
+ private:
+
+
+- UBool doParseActions(EParseAction a);
++ UBool doParseActions(int a);
+ void error(UErrorCode e); // error reporting convenience function.
+
+ UChar32 nextCharLL();
+--- i18n/regexcmp.cpp Wed Feb 1 22:37:14 2006
++++ 118n/regexcmp.cpp Mon Dec 11 13:43:21 2006
+@@ -191,7 +191,7 @@
+ // We've found the row of the state table that matches the current input
+ // character from the rules string.
+ // Perform any action specified by this row in the state table.
+- if (doParseActions((EParseAction)tableEl->fAction) == FALSE) {
++ if (doParseActions(tableEl->fAction) == FALSE) {
+ // Break out of the state machine loop if the
+ // the action signalled some kind of error, or
+ // the action was to exit, occurs on normal end-of-rules-input.
+@@ -321,7 +321,7 @@
+ //
+ //
+ //------------------------------------------------------------------------------
+-UBool RegexCompile::doParseActions(EParseAction action)
++UBool RegexCompile::doParseActions(int action)
+ {
+ UBool returnVal = TRUE;
+
+@@ -342,7 +342,7 @@
+
+ // Standard open nonCapture paren action emits the two NOPs and
+ // sets up the paren stack frame.
+- doParseActions((EParseAction)doOpenNonCaptureParen);
++ doParseActions(doOpenNonCaptureParen);
+ break;
+
+ case doPatFinish:
diff --git a/devel/icu4/files/patch-enum-bug b/devel/icu4/files/patch-enum-bug
new file mode 100644
index 00000000000..4c254481a0d
--- /dev/null
+++ b/devel/icu4/files/patch-enum-bug
@@ -0,0 +1,50 @@
+--- i18n/regexcmp.h Thu Oct 20 10:54:02 2005
++++ i18n/regexcmp.h Mon Dec 11 13:42:54 2006
+@@ -38,9 +38,6 @@
+ // to the depth of parentheses nesting
+ // that is allowed in the rules.
+
+-enum EParseAction {dummy01, dummy02}; // Placeholder enum for the specifier for
+- // actions that are specified in the
+- // rule parsing state table.
+ struct RegexTableEl;
+ class RegexPattern;
+
+@@ -83,7 +80,7 @@
+ private:
+
+
+- UBool doParseActions(EParseAction a);
++ UBool doParseActions(int a);
+ void error(UErrorCode e); // error reporting convenience function.
+
+ UChar32 nextCharLL();
+--- i18n/regexcmp.cpp Wed Feb 1 22:37:14 2006
++++ 118n/regexcmp.cpp Mon Dec 11 13:43:21 2006
+@@ -191,7 +191,7 @@
+ // We've found the row of the state table that matches the current input
+ // character from the rules string.
+ // Perform any action specified by this row in the state table.
+- if (doParseActions((EParseAction)tableEl->fAction) == FALSE) {
++ if (doParseActions(tableEl->fAction) == FALSE) {
+ // Break out of the state machine loop if the
+ // the action signalled some kind of error, or
+ // the action was to exit, occurs on normal end-of-rules-input.
+@@ -321,7 +321,7 @@
+ //
+ //
+ //------------------------------------------------------------------------------
+-UBool RegexCompile::doParseActions(EParseAction action)
++UBool RegexCompile::doParseActions(int action)
+ {
+ UBool returnVal = TRUE;
+
+@@ -342,7 +342,7 @@
+
+ // Standard open nonCapture paren action emits the two NOPs and
+ // sets up the paren stack frame.
+- doParseActions((EParseAction)doOpenNonCaptureParen);
++ doParseActions(doOpenNonCaptureParen);
+ break;
+
+ case doPatFinish: