diff options
author | Matthew Newhook <matthew@zeroc.com> | 2005-07-22 12:56:12 +0000 |
---|---|---|
committer | Matthew Newhook <matthew@zeroc.com> | 2005-07-22 12:56:12 +0000 |
commit | f35cbc2d0b87b6a9a77603649fe26db4f4f244b3 (patch) | |
tree | 9a64ced70f5d45c0bf5e067f89e4d5a46df44ecc /cpp/src/slice2cppe/Gen.cpp | |
parent | Fixed bug 418. (diff) | |
download | ice-f35cbc2d0b87b6a9a77603649fe26db4f4f244b3.tar.bz2 ice-f35cbc2d0b87b6a9a77603649fe26db4f4f244b3.tar.xz ice-f35cbc2d0b87b6a9a77603649fe26db4f4f244b3.zip |
code generator generates ARMv4 exception handling bug workaround.
Diffstat (limited to 'cpp/src/slice2cppe/Gen.cpp')
-rw-r--r-- | cpp/src/slice2cppe/Gen.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/cpp/src/slice2cppe/Gen.cpp b/cpp/src/slice2cppe/Gen.cpp index a68f7e16936..a9a31c62193 100644 --- a/cpp/src/slice2cppe/Gen.cpp +++ b/cpp/src/slice2cppe/Gen.cpp @@ -1322,6 +1322,18 @@ Slice::Gen::ProxyVisitor::visitOperation(const OperationPtr& p) C << sb; C << nl << "__handleException(__ex, __cnt);"; C << eb; + + C.zeroIndent(); + C << nl << "#if defined(_MSC_VER) && (_MSC_VER == 1201) && (_M_ARM == 4) // EVC4 SP4 bug."; // COMPILERBUG + C.restoreIndent(); + C << nl << "catch(...)"; + C << sb; + C << nl << "throw;"; + C << eb; + C.zeroIndent(); + C << nl << "#endif"; + C.restoreIndent(); + C << eb; C << eb; } |