@@ -2863,6 +2863,7 @@ class SimpleCallNode(CallNode):
...
@@ -2863,6 +2863,7 @@ class SimpleCallNode(CallNode):
orfunc_type.exception_check:
orfunc_type.exception_check:
self.is_temp=1
self.is_temp=1
# C++ exception handler
# C++ exception handler
self.nogil=env.nogil
iffunc_type.exception_check=='+':
iffunc_type.exception_check=='+':
iffunc_type.exception_valueisNone:
iffunc_type.exception_valueisNone:
env.use_utility_code(cpp_exception_utility_code)
env.use_utility_code(cpp_exception_utility_code)
...
@@ -2957,6 +2958,8 @@ class SimpleCallNode(CallNode):
...
@@ -2957,6 +2958,8 @@ class SimpleCallNode(CallNode):
func_type.exception_value.entry.cname)
func_type.exception_value.entry.cname)
else:
else:
raise_py_exception='%s(); if (!PyErr_Occurred()) PyErr_SetString(PyExc_RuntimeError , "Error converting c++ exception.")'%func_type.exception_value.entry.cname
raise_py_exception='%s(); if (!PyErr_Occurred()) PyErr_SetString(PyExc_RuntimeError , "Error converting c++ exception.")'%func_type.exception_value.entry.cname