summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Beazley <dave-swig@dabeaz.com>2003-03-20 19:13:52 +0000
committerDave Beazley <dave-swig@dabeaz.com>2003-03-20 19:13:52 +0000
commitb59d8e4db28be9e1d9cd01aced1a058868fb720d (patch)
tree80bbdd5c33e16ab8c2aa725ee1e0c0427316d9ee
parentab9443b3802e4b8468cfaba83211444379742467 (diff)
downloadswig-b59d8e4db28be9e1d9cd01aced1a058868fb720d.tar.gz
Incorporated [ 696516 ] Enabling exception processing for data member access.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@4588 626c5289-ae23-0410-ae9c-e8d60b6d4f22
-rw-r--r--SWIG/Source/Modules/lang.cxx8
1 files changed, 6 insertions, 2 deletions
diff --git a/SWIG/Source/Modules/lang.cxx b/SWIG/Source/Modules/lang.cxx
index 34d2070a6..6a17b838b 100644
--- a/SWIG/Source/Modules/lang.cxx
+++ b/SWIG/Source/Modules/lang.cxx
@@ -1074,10 +1074,14 @@ Language::membervariableHandler(Node *n) {
/* If not a smart-pointer access or added method. We clear
feature:except. There is no way C++ or C would throw
- an exception merely for accessing a member data
+ an exception merely for accessing a member data.
+
+ Caveat: Some compilers seem to route attribute access through
+ methods which can generate exceptions. The feature:allowexcept
+ allows this.
*/
- if (!(Extend | SmartPointer)) {
+ if (!(Extend | SmartPointer) && (!Getattr(n,"feature:allowexcept"))) {
Delattr(n,"feature:except");
}