From: SourceForge.net <no...@so...> - 2009-08-06 10:01:37
|
Bugs item #2833091, was opened at 2009-08-06 12:01 Message generated for change (Tracker Item Submitted) made by thomas-denk You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=102435&aid=2833091&group_id=2435 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: w32api Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: thomas (thomas-denk) Assigned to: Nobody/Anonymous (nobody) Summary: __try1 (excpt.h) missing memory clobber Initial Comment: Problem: __try1 will fail "mysteriously" (consistently, reproducably, but not according to any immediately obvious pattern) if optimisations are turned on. Looking at the disassembly shows that in these cases of failure, instructions were reordered, thus if an exception occurred too soon after __try1, it would sometimes only install the SEH handler after the application had already crashed. Fix: add a "memory" clobber as compiler barrier to __try1 (and probably it's a good idea to add one to __except1 too). #define __try1(pHandler) \ __asm__ ("pushl %0;pushl %%fs:0;movl %%esp,%%fs:0;" : : "g" (pHandler) : "memory"); ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=102435&aid=2833091&group_id=2435 |
From: SF/projects/mingw n. l. <min...@li...> - 2012-06-14 14:04:55
|
Bugs item #2833091, was opened at 2009-08-06 03:01 Message generated for change (Comment added) made by earnie You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=102435&aid=2833091&group_id=2435 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: w32api >Group: Aged issue Status: Open Resolution: None Priority: 5 Private: No Submitted By: thomas (thomas-denk) >Assigned to: Chris Sutcliffe (ir0nh34d) Summary: __try1 (excpt.h) missing memory clobber Initial Comment: Problem: __try1 will fail "mysteriously" (consistently, reproducably, but not according to any immediately obvious pattern) if optimisations are turned on. Looking at the disassembly shows that in these cases of failure, instructions were reordered, thus if an exception occurred too soon after __try1, it would sometimes only install the SEH handler after the application had already crashed. Fix: add a "memory" clobber as compiler barrier to __try1 (and probably it's a good idea to add one to __except1 too). #define __try1(pHandler) \ __asm__ ("pushl %0;pushl %%fs:0;movl %%esp,%%fs:0;" : : "g" (pHandler) : "memory"); ---------------------------------------------------------------------- >Comment By: Earnie Boyd (earnie) Date: 2012-06-14 07:04 Message: Assigning to Chris for follow up. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=102435&aid=2833091&group_id=2435 |
From: SF/projects/mingw n. l. <min...@li...> - 2012-08-01 16:12:54
|
Bugs item #2833091, was opened at 2009-08-06 03:01 Message generated for change (Comment added) made by earnie You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=102435&aid=2833091&group_id=2435 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. >Category: mingw runtime Group: Aged issue Status: Open Resolution: None Priority: 5 Private: No Submitted By: thomas (thomas-denk) >Assigned to: Earnie Boyd (earnie) Summary: __try1 (excpt.h) missing memory clobber Initial Comment: Problem: __try1 will fail "mysteriously" (consistently, reproducably, but not according to any immediately obvious pattern) if optimisations are turned on. Looking at the disassembly shows that in these cases of failure, instructions were reordered, thus if an exception occurred too soon after __try1, it would sometimes only install the SEH handler after the application had already crashed. Fix: add a "memory" clobber as compiler barrier to __try1 (and probably it's a good idea to add one to __except1 too). #define __try1(pHandler) \ __asm__ ("pushl %0;pushl %%fs:0;movl %%esp,%%fs:0;" : : "g" (pHandler) : "memory"); ---------------------------------------------------------------------- >Comment By: Earnie Boyd (earnie) Date: 2012-08-01 09:12 Message: I need a sample test program attached to this issue. Thomas can you supply it? ---------------------------------------------------------------------- Comment By: Earnie Boyd (earnie) Date: 2012-06-14 07:04 Message: Assigning to Chris for follow up. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=102435&aid=2833091&group_id=2435 |
From: SF/projects/mingw n. l. <min...@li...> - 2012-10-23 12:21:36
|
Bugs item #2833091, was opened at 2009-08-06 03:01 Message generated for change (Comment added) made by earnie You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=102435&aid=2833091&group_id=2435 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: mingw runtime (deprecated use WSL) Group: Aged issue >Status: Closed >Resolution: Invalid Priority: 5 Private: No Submitted By: thomas (thomas-denk) Assigned to: Earnie Boyd (earnie) Summary: __try1 (excpt.h) missing memory clobber Initial Comment: Problem: __try1 will fail "mysteriously" (consistently, reproducably, but not according to any immediately obvious pattern) if optimisations are turned on. Looking at the disassembly shows that in these cases of failure, instructions were reordered, thus if an exception occurred too soon after __try1, it would sometimes only install the SEH handler after the application had already crashed. Fix: add a "memory" clobber as compiler barrier to __try1 (and probably it's a good idea to add one to __except1 too). #define __try1(pHandler) \ __asm__ ("pushl %0;pushl %%fs:0;movl %%esp,%%fs:0;" : : "g" (pHandler) : "memory"); ---------------------------------------------------------------------- >Comment By: Earnie Boyd (earnie) Date: 2012-10-23 05:21 Message: No test program to display the issue. ---------------------------------------------------------------------- Comment By: Earnie Boyd (earnie) Date: 2012-08-01 09:12 Message: I need a sample test program attached to this issue. Thomas can you supply it? ---------------------------------------------------------------------- Comment By: Earnie Boyd (earnie) Date: 2012-06-14 07:04 Message: Assigning to Chris for follow up. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=102435&aid=2833091&group_id=2435 |