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
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
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
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
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++ -
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
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