uname -a: Linux lit3n4014e 2.6.22.18-0.2-bigsmp #1 SMP 2008-06-09 13:53:20 +0200 i686 i686 i386 GNU/Linux
OS is SuSE 10.3 IA32 on a Core2 Duo machine. See attachments for g++ -dumpspecs, pre-processed source that demonstrates the problem, assembly generated by g++ and (on the chance that it's useful) assembly generated by the latest version of Intel's compiler. There's a segfault on what gdb thinks is the first "real" line of PerformanceStatistics<enabled_domain>::Scope<enabled_domain::function_c>::~Scope(). The segfault also occurs in the same place if: 1) I replace lCycles = mCounter.GetElapsedTime() with lCycles = 0 2) I leave the line lCycles = mCounter.GetElapsedTime() untouched and instead comment out the rest of the if statement The problem only occurs when -fPIC and -finline are both enabled. I can compile with -O3 -fno-inline and the problem goes away or I can compile with -O0 -finline and the problem appears. -- Summary: -fPIC and inline seems to generate incorrect code with nested class templates Product: gcc Version: 4.2.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: notquitezeus at gmail dot com GCC build triplet: i686-pc-linux-gnu GCC host triplet: i686-pc-linux-gnu GCC target triplet: i686-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37452