summaryrefslogtreecommitdiff
path: root/cpp/src/slice2java/Gen.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/slice2java/Gen.cpp')
-rw-r--r--cpp/src/slice2java/Gen.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/cpp/src/slice2java/Gen.cpp b/cpp/src/slice2java/Gen.cpp
index ec2c56f05fc..77787c2a810 100644
--- a/cpp/src/slice2java/Gen.cpp
+++ b/cpp/src/slice2java/Gen.cpp
@@ -485,7 +485,11 @@ Slice::JavaVisitor::writeDispatch(Output& out, const ClassDefPtr& p)
// handler, causing compiler warnings and resulting in the base exception
// being marshaled instead of the derived exception.
//
+#if defined(__SUNPRO_CC)
+ throws.sort(Slice::derivedToBaseCompare);
+#else
throws.sort(Slice::DerivedToBaseCompare());
+#endif
TypeStringList::const_iterator q;
int iter;
@@ -3034,7 +3038,11 @@ Slice::Gen::DelegateMVisitor::visitClassDefStart(const ClassDefPtr& p)
// handler, causing compiler warnings and resulting in the base exception
// being marshaled instead of the derived exception.
//
+#if defined(__SUNPRO_CC)
+ throws.sort(Slice::derivedToBaseCompare);
+#else
throws.sort(Slice::DerivedToBaseCompare());
+#endif
vector<string> params = getParams(op, package);