[Bug c++/37452] New: -fPIC and inline seems to generate incorrect code with nested class templates

2008-09-09 Thread notquitezeus at gmail dot com
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

2008-09-09 Thread notquitezeus at gmail dot com


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

2008-09-09 Thread notquitezeus at gmail dot com


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

2008-09-09 Thread notquitezeus at gmail dot com


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

2008-09-09 Thread notquitezeus at gmail dot com


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

2008-09-09 Thread notquitezeus at gmail dot com


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