Discussion:
[omniORB] Incorrect behaviour handling exceptions in VC++ 7.1
Michael Kilburn
2009-02-04 08:03:29 UTC
Permalink
Hi,

I have discovered a fix in recent version of omniORB that is described as:

Incorrect behaviour handling exceptions on VC++ 7.1 (bug number 2)

Where can I find more detailed info on this, like:
- what exactly is wrong with VC7.1?
- which code change was made to workaround the problem?
--
Sincerely yours,
Michael.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.omniorb-support.com/pipermail/omniorb-list/attachments/20090203/c373e093/attachment.htm
Duncan Grisby
2009-02-10 23:04:44 UTC
Permalink
Post by Michael Kilburn
Incorrect behaviour handling exceptions on VC++ 7.1 (bug number 2)
- what exactly is wrong with VC7.1?
- which code change was made to workaround the problem?
The bug was reported to me directly, so there's no public report of it,
I'm afraid.

The problem is that VC++ 7.1 generates incorrect code for the code that
invokes operations. The old version of the code used continue within an
exception handler. That caused VC++ to generate invalid code so that if
an exception occurred, the runtime state was corrupted. The modified
version of the code uses a flag to represent the same condition, and
therefore does not trigger the VC++ bug. omniORB's code was correct --
the bug is in VC++.

If you want to see the details of the change, it's in CVS in the file
src/lib/omniORB/orbcore/omniObjRef.cc, between revisions 1.4.2.5 and
1.4.2.6.

Cheers,

Duncan.
--
-- Duncan Grisby --
-- ***@grisby.org --
-- http://www.grisby.org --
Michael Kilburn
2009-02-12 07:16:27 UTC
Permalink
Post by Duncan Grisby
The old version of the code used continue within an
exception handler. That caused VC++ to generate invalid code so that if
an exception occurred, the runtime state was corrupted.
Hmm... I can not reproduce it in small test app.
1. Which state gets corrupted? I.e. how do you know that something went
wrong?
2. Is this VC7.1 bug well-known? (i.e. described in official sources)
3. What exception handling model you use when compiling omniORB with VC7.1?
(/EH option)
--
Sincerely yours,
Michael.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.omniorb-support.com/pipermail/omniorb-list/attachments/20090211/99cbea5d/attachment.htm
Loading...