[Bug target/55339] C++ code compiled with -O2 on Linux ppc hangs in runtime
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55339 --- Comment #4 from anton.katilin at gmail dot com 2012-11-16 17:44:16 UTC --- > Why did you do that? We copied the configuration of gcc 4.1.2 available on the system (Yellow Dog Linux) out of the box. It had been configured with --disable-libunwind-exceptions By the way, the problem is not reproducible with that gcc 4.1.2.
[Bug c++/55339] C++ code compiled with -O2 on Linux ppc hangs in runtime
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55339 --- Comment #2 from anton.katilin at gmail dot com 2012-11-15 14:35:12 UTC --- An update: There is no problem when linking statically, i.e. if we do g++ -m32 -fPIC -O2 *.cpp -static-libstdc++ -static-libgcc -o test-O2.bin instead of g++ -m32 -fPIC -O2 *.cpp -o test-O2.bin
[Bug c++/55339] Generated code hangs with -O2 on Linux ppc
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55339 --- Comment #1 from anton.katilin at gmail dot com 2012-11-15 11:28:32 UTC --- Compile with: - export PATH=/opt/gcc-4.7.2/bin:$PATH g++ -m32 -fPIC -O2 *.cpp -o test-O2.bin g++ -m32 -fPIC -O1 *.cpp -o test-O1.bin Please find the source code of the test below. - Test.cpp - #include #include "Foo.h" int main() { try { printf("entering...\n"); fflush(stdout); YS(-1); // will throw exception printf("must never reach\n"); } catch (int) { printf("exception caught, as expected\n"); } printf("OK\n"); return 0; } - Foo.h - #pragma once void foo(); void checkPositive(int); class YS { public: YS(int capacity) { checkPositive(capacity); } ~YS() { foo(); } }; void throwException(const YS&); - Foo.cpp - #include "Foo.h" void foo() { } void checkPositive(int v) { if (v <= 0) { throwException(10); } } void throwException(const YS&) { throw int(1); }
[Bug c++/55339] New: Generated code hangs with -O2 on Linux ppc
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55339 Bug #: 55339 Summary: Generated code hangs with -O2 on Linux ppc Classification: Unclassified Product: gcc Version: 4.7.2 Status: UNCONFIRMED Severity: critical Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: anton.kati...@gmail.com Please find attached a test program and _compile.sh to compile it. _compile.sh produces 2 output files: test-O2.bin and test-O1.bin, compiled with -O2 and -O1 respectively. test-O1.bin works just fine: $ ./test-O1.bin entering... exception caught, as expected OK $ test-O1.bin hangs: $ ./test-O2.bin entering... $ g++ -v Using built-in specs. COLLECT_GCC=g++ COLLECT_LTO_WRAPPER=/opt/gcc-4.7.2/libexec/gcc/powerpc64-unknown-linux-gnu/4.7.2/lto-wrapper Target: powerpc64-unknown-linux-gnu Configured with: ../gcc-4.7.2/configure --prefix=/opt/gcc-4.7.2 --enable-threads=posix --disable-libunwind-exceptions --with-system-zlib --enable-__cxa_atexit --enable-languages=c,c++ --enable-multilib Thread model: posix gcc version 4.7.2 (GCC) $ uname -a Linux localhost.localdomain 2.6.29-3.ydl61.3 #1 SMP Thu Jun 25 12:22:41 EDT 2009 ppc64 ppc64 ppc64 GNU/Linux