[Bug lto/45496] Static members of templates cause LTO to omit required code

2010-09-02 Thread alexey at feldgendler dot ru


--- Comment #18 from alexey at feldgendler dot ru  2010-09-02 14:51 ---
Further research: the LTO pass on either the affected or unaffected
installation fails if one or both .s files come from the affected installation,
but succeeds with both .s files from the unaffected installation.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45496



[Bug lto/45496] Static members of templates cause LTO to omit required code

2010-09-02 Thread rguenth at gcc dot gnu dot org


--- Comment #17 from rguenth at gcc dot gnu dot org  2010-09-02 14:46 
---
Created an attachment (id=21668)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21668&action=view)
working one


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45496



[Bug lto/45496] Static members of templates cause LTO to omit required code

2010-09-02 Thread rguenth at gcc dot gnu dot org


--- Comment #16 from rguenth at gcc dot gnu dot org  2010-09-02 14:45 
---
Created an attachment (id=21667)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21667&action=view)
working one


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45496



[Bug lto/45496] Static members of templates cause LTO to omit required code

2010-09-02 Thread alexey at feldgendler dot ru


--- Comment #15 from alexey at feldgendler dot ru  2010-09-02 14:43 ---
Created an attachment (id=21666)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21666&action=view)
Assembly for 1.cpp

Re-uploaded 1.s.


-- 

alexey at feldgendler dot ru changed:

   What|Removed |Added

  Attachment #21657|0   |1
is obsolete||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45496



[Bug lto/45496] Static members of templates cause LTO to omit required code

2010-09-02 Thread alexey at feldgendler dot ru


--- Comment #14 from alexey at feldgendler dot ru  2010-09-02 14:40 ---
Created an attachment (id=21665)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21665&action=view)
Assembly for 2.cpp

Re-uploaded 2.s.


-- 

alexey at feldgendler dot ru changed:

   What|Removed |Added

  Attachment #21658|0   |1
is obsolete||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45496



[Bug lto/45496] Static members of templates cause LTO to omit required code

2010-09-02 Thread rguenth at gcc dot gnu dot org


--- Comment #13 from rguenth at gcc dot gnu dot org  2010-09-02 12:56 
---
It works for me on x86_64-linux-gnu.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45496



[Bug lto/45496] Static members of templates cause LTO to omit required code

2010-09-02 Thread alexey at feldgendler dot ru


--- Comment #12 from alexey at feldgendler dot ru  2010-09-02 12:13 ---
Could it be specific to x86_64-linux-gnu?


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45496



[Bug lto/45496] Static members of templates cause LTO to omit required code

2010-09-02 Thread alexey at feldgendler dot ru


--- Comment #11 from alexey at feldgendler dot ru  2010-09-02 12:04 ---
Attached cgraph dump from "/usr/lib/gcc/x86_64-linux-gnu/4.5.1/lto1
-fdump-ipa-cgraph 1.o 2.o". For some reason, though, lto1 creates only one dump
file, and that only covers its first input infile.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45496



[Bug lto/45496] Static members of templates cause LTO to omit required code

2010-09-02 Thread alexey at feldgendler dot ru


--- Comment #10 from alexey at feldgendler dot ru  2010-09-02 11:59 ---
Created an attachment (id=21662)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21662&action=view)
-fdump-ipa-cgraph from LTO pass


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45496



[Bug lto/45496] Static members of templates cause LTO to omit required code

2010-09-02 Thread alexey at feldgendler dot ru


--- Comment #9 from alexey at feldgendler dot ru  2010-09-02 11:57 ---
Output of lto1 without -quiet:

$ /usr/lib/gcc/x86_64-linux-gnu/4.5.1/lto1 1.o 2.o 
Performing interprocedural optimizations
  Assembling functions:
 main
Execution times (seconds)
 TOTAL :   0.00 0.00 0.01  
1138 kB


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45496



[Bug lto/45496] Static members of templates cause LTO to omit required code

2010-09-02 Thread alexey at feldgendler dot ru


--- Comment #8 from alexey at feldgendler dot ru  2010-09-02 11:40 ---
Attached assembler files generated for 1.cpp and 2.cpp, as well as the
assembler file generated by the LTO pass. As can be seen from the latter,
_Z6callmev is referenced but not defined.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45496



[Bug lto/45496] Static members of templates cause LTO to omit required code

2010-09-02 Thread alexey at feldgendler dot ru


--- Comment #7 from alexey at feldgendler dot ru  2010-09-02 11:38 ---
Created an attachment (id=21660)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21660&action=view)
Assembly after LTO for entire program


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45496



[Bug lto/45496] Static members of templates cause LTO to omit required code

2010-09-02 Thread rguenth at gcc dot gnu dot org


--- Comment #6 from rguenth at gcc dot gnu dot org  2010-09-02 11:38 ---
It works for me with 4.5.0, 4.5.1 and current trunk.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45496



[Bug lto/45496] Static members of templates cause LTO to omit required code

2010-09-02 Thread alexey at feldgendler dot ru


--- Comment #5 from alexey at feldgendler dot ru  2010-09-02 11:35 ---
Created an attachment (id=21658)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21658&action=view)
Assembly for 2.cpp


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45496



[Bug lto/45496] Static members of templates cause LTO to omit required code

2010-09-02 Thread alexey at feldgendler dot ru


--- Comment #4 from alexey at feldgendler dot ru  2010-09-02 11:35 ---
Created an attachment (id=21657)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21657&action=view)
Assembly for 1.cpp


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45496



[Bug lto/45496] Static members of templates cause LTO to omit required code

2010-09-02 Thread alexey at feldgendler dot ru


--- Comment #3 from alexey at feldgendler dot ru  2010-09-02 11:31 ---
Output of "gcc-4.5 -v 1.cpp 2.cpp":

$ g++-4.5 -v -flto 1.cpp 2.cpp
Using built-in specs.
COLLECT_GCC=g++-4.5
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.5.1/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.5.1-2'
--with-bugurl=file:///usr/share/doc/gcc-4.5/README.Bugs
--enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr
--program-suffix=-4.5 --enable-shared --enable-multiarch
--enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib
--without-included-gettext --enable-threads=posix
--with-gxx-include-dir=/usr/include/c++/4.5 --libdir=/usr/lib --enable-nls
--enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes
--enable-plugin --enable-gold --with-plugin-ld=ld.gold --enable-objc-gc
--with-arch-32=i586 --with-tune=generic --enable-checking=release
--build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.5.1 (Debian 4.5.1-2) 
COLLECT_GCC_OPTIONS='-v' '-flto' '-shared-libgcc' '-mtune=generic'
'-march=x86-64'
 /usr/lib/gcc/x86_64-linux-gnu/4.5.1/cc1plus -quiet -v -D_GNU_SOURCE 1.cpp
-quiet -dumpbase 1.cpp -mtune=generic -march=x86-64 -auxbase 1 -version -flto
-o /tmp/ccTWKMfh.s
GNU C++ (Debian 4.5.1-2) version 4.5.1 (x86_64-linux-gnu)
compiled by GNU C version 4.5.1, GMP version 4.3.2, MPFR version
3.0.0-p3, MPC version 0.8.2
warning: GMP header version 4.3.2 differs from library version 4.2.2.
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
ignoring nonexistent directory
"/usr/lib/gcc/x86_64-linux-gnu/4.5.1/../../../../x86_64-linux-gnu/include"
ignoring nonexistent directory "/usr/include/x86_64-linux-gnu"
#include "..." search starts here:
#include <...> search starts here:
 /usr/include/c++/4.5
 /usr/include/c++/4.5/x86_64-linux-gnu
 /usr/include/c++/4.5/backward
 /usr/local/include
 /usr/lib/gcc/x86_64-linux-gnu/4.5.1/include
 /usr/lib/gcc/x86_64-linux-gnu/4.5.1/include-fixed
 /usr/include
End of search list.
GNU C++ (Debian 4.5.1-2) version 4.5.1 (x86_64-linux-gnu)
compiled by GNU C version 4.5.1, GMP version 4.3.2, MPFR version
3.0.0-p3, MPC version 0.8.2
warning: GMP header version 4.3.2 differs from library version 4.2.2.
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 088ccc0edd14ed2073ed25e2d6963850
COLLECT_GCC_OPTIONS='-v' '-flto' '-shared-libgcc' '-mtune=generic'
'-march=x86-64'
 as -V -Qy --64 -o /tmp/cctwxZZ0.o /tmp/ccTWKMfh.s
GNU assembler version 2.20.51 (x86_64-linux-gnu) using BFD version (GNU
Binutils for Debian) 2.20.51-system.20100813
COLLECT_GCC_OPTIONS='-v' '-flto' '-shared-libgcc' '-mtune=generic'
'-march=x86-64'
 /usr/lib/gcc/x86_64-linux-gnu/4.5.1/cc1plus -quiet -v -D_GNU_SOURCE 2.cpp
-quiet -dumpbase 2.cpp -mtune=generic -march=x86-64 -auxbase 2 -version -flto
-o /tmp/ccTWKMfh.s
GNU C++ (Debian 4.5.1-2) version 4.5.1 (x86_64-linux-gnu)
compiled by GNU C version 4.5.1, GMP version 4.3.2, MPFR version
3.0.0-p3, MPC version 0.8.2
warning: GMP header version 4.3.2 differs from library version 4.2.2.
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
ignoring nonexistent directory
"/usr/lib/gcc/x86_64-linux-gnu/4.5.1/../../../../x86_64-linux-gnu/include"
ignoring nonexistent directory "/usr/include/x86_64-linux-gnu"
#include "..." search starts here:
#include <...> search starts here:
 /usr/include/c++/4.5
 /usr/include/c++/4.5/x86_64-linux-gnu
 /usr/include/c++/4.5/backward
 /usr/local/include
 /usr/lib/gcc/x86_64-linux-gnu/4.5.1/include
 /usr/lib/gcc/x86_64-linux-gnu/4.5.1/include-fixed
 /usr/include
End of search list.
GNU C++ (Debian 4.5.1-2) version 4.5.1 (x86_64-linux-gnu)
compiled by GNU C version 4.5.1, GMP version 4.3.2, MPFR version
3.0.0-p3, MPC version 0.8.2
warning: GMP header version 4.3.2 differs from library version 4.2.2.
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 088ccc0edd14ed2073ed25e2d6963850
COLLECT_GCC_OPTIONS='-v' '-flto' '-shared-libgcc' '-mtune=generic'
'-march=x86-64'
 as -V -Qy --64 -o /tmp/ccBnOlNK.o /tmp/ccTWKMfh.s
GNU assembler version 2.20.51 (x86_64-linux-gnu) using BFD version (GNU
Binutils for Debian) 2.20.51-system.20100813
COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.5.1/:/usr/lib/gcc/x86_64-linux-gnu/4.5.1/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.5.1/:/usr/lib/gcc/x86_64-linux-gnu/
LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.5.1/:/usr/lib/gcc/x86_64-linux-gnu/4.5.1/../../../../lib64/:/lib/../lib64/:/usr/lib/../lib64/:/usr/lib/gcc/x86_64-linux-gnu/4.5.1/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-flto' '-shared-libgcc' '-mtune=generic'
'-march=x86-64'
 /usr/lib/g

[Bug lto/45496] Static members of templates cause LTO to omit required code

2010-09-02 Thread alexey at feldgendler dot ru


--- Comment #2 from alexey at feldgendler dot ru  2010-09-02 11:27 ---
Created an attachment (id=21656)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21656&action=view)
TC (2.cpp)


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45496



[Bug lto/45496] Static members of templates cause LTO to omit required code

2010-09-02 Thread alexey at feldgendler dot ru


--- Comment #1 from alexey at feldgendler dot ru  2010-09-02 11:27 ---
Created an attachment (id=21655)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21655&action=view)
TC (file 1)


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45496