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.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/cpp/src/slice2java/Gen.cpp b/cpp/src/slice2java/Gen.cpp
index 8217d2c6e7c..e92cadc18cc 100644
--- a/cpp/src/slice2java/Gen.cpp
+++ b/cpp/src/slice2java/Gen.cpp
@@ -1260,7 +1260,22 @@ Slice::Gen::TieVisitor::visitClassDefStart(const ClassDefPtr& p)
ContainerPtr container = (*r)->container();
ClassDefPtr cl = ClassDefPtr::dynamicCast(container);
bool hasAMD = cl->hasMetaData("amd") || (*r)->hasMetaData("amd");
+#if defined(__SUNPRO_CC) && (__SUNPRO_CC==0x550)
+ //
+ // Work around for Sun CC 5.5 bug #4853566
+ //
+ string opName;
+ if(hasAMD)
+ {
+ opName = (*r)->name() + "_async";
+ }
+ else
+ {
+ opName = fixKwd((*r)->name());
+ }
+#else
string opName = hasAMD ? (*r)->name() + "_async" : fixKwd((*r)->name());
+#endif
TypePtr ret = (*r)->returnType();
string retS = typeToString(ret, TypeModeReturn, package, (*r)->getMetaData());