summaryrefslogtreecommitdiff
path: root/cpp/src/Slice/Parser.cpp
diff options
context:
space:
mode:
authorBernard Normier <bernard@zeroc.com>2003-04-29 19:51:33 +0000
committerBernard Normier <bernard@zeroc.com>2003-04-29 19:51:33 +0000
commitd6b805efcf63a16a759f0a104db74c5e9c009f7d (patch)
tree2a73b6a3e15c2cf711a0c4f1ab12dd52687e003e /cpp/src/Slice/Parser.cpp
parentfile UserExceptionFactory.h was initially added on branch slicing. (diff)
downloadice-d6b805efcf63a16a759f0a104db74c5e9c009f7d.tar.bz2
ice-d6b805efcf63a16a759f0a104db74c5e9c009f7d.tar.xz
ice-d6b805efcf63a16a759f0a104db74c5e9c009f7d.zip
Sun: 64 bit + CC 5.3 support
Diffstat (limited to 'cpp/src/Slice/Parser.cpp')
-rw-r--r--cpp/src/Slice/Parser.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/cpp/src/Slice/Parser.cpp b/cpp/src/Slice/Parser.cpp
index 3976698b4ce..92bd2f0a1dc 100644
--- a/cpp/src/Slice/Parser.cpp
+++ b/cpp/src/Slice/Parser.cpp
@@ -38,6 +38,7 @@ toLower(string& s)
transform(s.begin(), s.end(), s.begin(), ::tolower);
}
+
// ----------------------------------------------------------------------
// SyntaxTreeBase
// ----------------------------------------------------------------------
@@ -3021,7 +3022,15 @@ Slice::Const::typesAreCompatible(const string& name, const TypePtr& constType,
const UnitPtr& unit)
{
BuiltinPtr ct = BuiltinPtr::dynamicCast(constType);
+
+#if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x530)
+// Strange Sun C++ 5.3 bug
+ const IceUtil::HandleBase<SyntaxTreeBase>& hb = literalType;
+ BuiltinPtr lt = BuiltinPtr::dynamicCast(hb);
+#else
BuiltinPtr lt = BuiltinPtr::dynamicCast(literalType);
+#endif
+
if(ct && lt)
{
switch(ct->kind())