Hello! > Confirmed with clang++ 8
Good! Meanwhile i've tried to investigate it myself a bit and here's some more info: 1. With clang 8 __cxa_throw() ends up in Windows RaiseException(); with clang 5 it simply doesn't make it there. I guess there's some problem with interpreting unwind info. 2. strace actually reports "exception XXX at YYY" twice with clang 5, when the code is working. clang 8 code reports this only once before dying. 3. The problem is triggered by a combination of template (from_file_impl) and "if" condition inside. If you remove any of these features (e. g. throw unconditionally or move the code from template into from_file()), the code starts working. Perhaps even generic clang 8 bug. > but WJFFM with g++ 7.4.0 and reports exception (below). Yes, confirmed. I was tricked by the fact that clang does not append ".exe" to the binary name automatically (isn't it a small bug too?). So that shell sequence: $ clang++-8 catch_test.cpp catch_test_2.cpp -g -o catch_test $ g++ catch_test.cpp catch_test_2.cpp -g -o catch_test (note that no .exe suffix is given to -o !!!) ...produces two files, one named "catch_test" and another named "catch_test.exe". Attempt to execute "./catch_test" in the shell first tries to find the exact name and succeeds, always running the broken binary made by clang. > > So, a Windows exception is reported, then the whole thing silently quits. > > I have an impression that it has to do with the bug I previously reported > > (and someone here claimed he could reproduce it) > > Please provide a link to the Cygwin ML message; is it this, confirmed by > Takashi > Yano: > > https://cygwin.com/ml/cygwin/2019-10/msg00038.html Yes, that one. Kind regards, Pavel Fedin Senior Engineer Samsung Electronics Research center Russia -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple