www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - Exception handling is broken for delegates on Linux

reply mclysenk mtu.edu writes:
As of version 0.150, the offsets of the code within a delegate's function
handler are not correctly calculated.  All of them seem to be set relative to
the address of the first delegate declared within the scope.  This results in
the following code breaking.  The windows version does not have this problem.

#class Tester






#unittest














































































































The catch block in the second delegate never gets invoked.  On a Linux machine.
My output is as follows:

Starting test
test1
initial test.
pass
test2
test3
Error: AssertError Failure test(117)

While on windows, it passes with:

Starting test
test1
initial test.
pass
test2
Never called.
test3
Passed!


-Mik
May 10 2006
parent Thomas Kuehne <thomas-dloop kuehne.cn> writes:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

mclysenk mtu.edu schrieb am 2006-05-11:
 As of version 0.150, the offsets of the code within a delegate's function
 handler are not correctly calculated.  All of them seem to be set relative to
 the address of the first delegate declared within the scope.  This results in
 the following code breaking.  The windows version does not have this problem.

 #class Tester






 #unittest














































































































 The catch block in the second delegate never gets invoked.  On a Linux machine.
 My output is as follows:

 Starting test
 test1
 initial test.
 pass
 test2
 test3
 Error: AssertError Failure test(117)

 While on windows, it passes with:

 Starting test
 test1
 initial test.
 pass
 test2
 Never called.
 test3
 Passed!


 -Mik
Added to DStress as http://dstress.kuehne.cn/run/t/throw_07_A.d http://dstress.kuehne.cn/run/t/throw_07_B.d Thomas -----BEGIN PGP SIGNATURE----- iD8DBQFEdEt+3w+/yD4P9tIRAgQxAJ9HhB3z9IYlFKnI+0OCTvkOCgyYkQCgmbcr QmeIsV6n1WSOy5csyiATmJA= =bwuz -----END PGP SIGNATURE-----
May 24 2006