SjLj EH (the default) is completely broken on Cygwin (and MinGW, confirmed by Danny in private email).
The failures have been occurring since at least November: see, e.g. http://gcc.gnu.org/ml/gcc-testresults/2008-11/msg02144.html (The distro maintainers have all been so focussed recently on getting DW2 EH to work on our platforms that this flew in under our radar; sorry for not noticing sooner). A simple test case and some complicated low-level analysis will follow in comments and attachments. So far it looks like an error in frame pointer elimination caused by a miscalculation of the initial frame pointer offset. I have filed this as a target problem since elimination is driven by the backend but it could just as well be a bug in rtl-optimisation; we'll know more soon. cheers, DaveK -- Summary: [4.4 Regression] EH does not work. Product: gcc Version: 4.4.0 Status: UNCONFIRMED Severity: blocker Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: dave dot korn dot cygwin at gmail dot com GCC build triplet: i686-pc-cygwin GCC host triplet: i686-pc-cygwin GCC target triplet: i686-pc-cygwin http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38952