Re: [Mingw-w64-public] exceptions weirdness

2014-08-25 Thread Óscar Fuentes
JonY writes: >> Could the compiler enforce "If you link to static libgcc, you should also >> link libstdc++ statically" or at least warn about it? >> It would save users such mysterious bugs resulting from having two copies >> of ligcc around. > > Unfortunately, no, binutils doesn't have any noti

Re: [Mingw-w64-public] exceptions weirdness

2014-08-25 Thread JonY
On 8/25/2014 16:50, Yaron Keren wrote: > Hi Ruben, > > Thanks for pointing this out, the problem is indeed that libstdc++ is > linked to the dynamic ligcc while the program (as above) links to the > static version of libgcc. There are two seperate copies of libgcc that do > not share exception inf

Re: [Mingw-w64-public] exceptions weirdness

2014-08-25 Thread Yaron Keren
Hi Ruben, Thanks for pointing this out, the problem is indeed that libstdc++ is linked to the dynamic ligcc while the program (as above) links to the static version of libgcc. There are two seperate copies of libgcc that do not share exception information resulting in uncaught exception. If -stat

Re: [Mingw-w64-public] exceptions weirdness

2014-08-25 Thread Ruben Van Boxem
2014-08-24 23:48 GMT+02:00 Yaron Keren : > Hi Tai, > > Thanks for looking into this. You are correct the right frontend should be > used, however this isn't the root of the problem. > It works since g++ defaults to -shared-libgcc while gcc defaults to > -static-libgcc. > If you force g++ to static

Re: [Mingw-w64-public] exceptions weirdness

2014-08-24 Thread Yaron Keren
Hi Tai, Thanks for looking into this. You are correct the right frontend should be used, however this isn't the root of the problem. It works since g++ defaults to -shared-libgcc while gcc defaults to -static-libgcc. If you force g++ to static link libgcc, the exception is still uncaught: g++ -

Re: [Mingw-w64-public] exceptions weirdness

2014-08-24 Thread Kai Tietz
Hi Yaron, I can't reproduce your reported issue by using proper frontends. You shouldn't use gcc frontend. Instead use g++. Later automatically adds proper link-libraries for c++ automatically. So you don't need to add -lstdc++ manual. By using 'g++ -o a a.cpp && ./a' it works for me as expec

[Mingw-w64-public] exceptions weirdness

2014-08-23 Thread Yaron Keren
Using i686-4.9.1-release-win32-dwarf-rt_v3-rev0.7z on Windows 7 64 bit, with this simple code: #include struct stype { ~stype() {} }; void t() { stype s; throw 1; } int main() { try { t(); } catch (...) { puts("Caught"); } } When compiling with: gcc a.cpp -lstdc++ & a the exception is