[Bug c++/37452] New: -fPIC and inline seems to generate incorrect code with nested class templates
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::Scope::~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
[Bug c++/37452] -fPIC and inline seems to generate incorrect code with nested class templates
--- Comment #1 from notquitezeus at gmail dot com 2008-09-10 01:52 --- Created an attachment (id=16269) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=16269&action=view) g++ -dumpspecs output -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37452
[Bug c++/37452] -fPIC and inline seems to generate incorrect code with nested class templates
--- Comment #2 from notquitezeus at gmail dot com 2008-09-10 01:53 --- Created an attachment (id=16270) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=16270&action=view) Preprocessed source that demonstrates the problem -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37452
[Bug c++/37452] -fPIC and inline seems to generate incorrect code with nested class templates
--- Comment #3 from notquitezeus at gmail dot com 2008-09-10 01:55 --- Created an attachment (id=16271) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=16271&action=view) Assembly code generated by Intel's compiler with -fPIC -finline -O0 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37452
[Bug c++/37452] -fPIC and inline seems to generate incorrect code with nested class templates
--- Comment #4 from notquitezeus at gmail dot com 2008-09-10 01:57 --- Created an attachment (id=16272) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=16272&action=view) g++ assembly output (-fPIC -finline -O0) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37452
[Bug c++/37452] -fPIC and inline seems to generate incorrect code with nested class templates
--- Comment #5 from notquitezeus at gmail dot com 2008-09-10 01:58 --- Created an attachment (id=16273) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=16273&action=view) g++ assembly output (-fPIC -fno-inline -O0) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37452