diff options
Diffstat (limited to 'cpp/src/slice2cpp')
-rwxr-xr-x | cpp/src/slice2cpp/Gen.cpp | 7 | ||||
-rw-r--r-- | cpp/src/slice2cpp/Makefile.mak | 2 |
2 files changed, 7 insertions, 2 deletions
diff --git a/cpp/src/slice2cpp/Gen.cpp b/cpp/src/slice2cpp/Gen.cpp index ddf90893d2b..85662dff609 100755 --- a/cpp/src/slice2cpp/Gen.cpp +++ b/cpp/src/slice2cpp/Gen.cpp @@ -2694,7 +2694,12 @@ Slice::Gen::DelegateMVisitor::visitOperation(const OperationPtr& p) } C << nl << "catch(const ::Ice::UserException& __ex)"; C << sb; - C << nl << "throw ::Ice::UnknownUserException(__FILE__, __LINE__, __ex.ice_name());"; + // + // COMPILERFIX: Don't throw UnknownUserException directly. This is causing access + // violation errors with Visual C++ 64bits optimized builds. See bug #2962. + // + C << nl << "::Ice::UnknownUserException __uue(__FILE__, __LINE__, __ex.ice_name());"; + C << nl << "throw __uue;"; C << eb; C << eb; diff --git a/cpp/src/slice2cpp/Makefile.mak b/cpp/src/slice2cpp/Makefile.mak index 16b28dacd30..433bcac6e89 100644 --- a/cpp/src/slice2cpp/Makefile.mak +++ b/cpp/src/slice2cpp/Makefile.mak @@ -22,7 +22,7 @@ SRCS = $(OBJS:.obj=.cpp) CPPFLAGS = -I. $(CPPFLAGS) -DWIN32_LEAN_AND_MEAN
-!if "$(CPP_COMPILER)" != "BCC2006" && "$(OPTIMIZE)" != "yes"
+!if "$(GENERATE_PDB)" == "yes"
PDBFLAGS = /pdb:$(NAME:.exe=.pdb)
!endif
|