[Bug c++/38828] g++ 4.3.2: -O2 without -fno-inline-small-functions makes some template instantiations disappear

2009-01-30 Thread bangerth at gmail dot com
--- Comment #10 from bangerth at gmail dot com 2009-01-30 15:37 --- (In reply to comment #9) Following the twisted maze that is BOOST_CLASS_EXPORT() leads me to think that it is (very) roughly equivalent to this: void dummy(boost::archive::xml_iarchive ar, A a, B b) {

[Bug c++/38828] g++ 4.3.2: -O2 without -fno-inline-small-functions makes some template instantiations disappear

2009-01-15 Thread ronan dot lehy at probayes dot com
--- Comment #8 from ronan dot lehy at probayes dot com 2009-01-15 15:13 --- If I add simple explicit instantiations in place or in addition to the BOOST_CLASS_EXPORT() calls, all symbols are correctly exposed in all cases : namespace boost { namespace serialization {

[Bug c++/38828] g++ 4.3.2: -O2 without -fno-inline-small-functions makes some template instantiations disappear

2009-01-15 Thread ronan dot lehy at probayes dot com
--- Comment #9 from ronan dot lehy at probayes dot com 2009-01-15 16:12 --- Following the twisted maze that is BOOST_CLASS_EXPORT() leads me to think that it is (very) roughly equivalent to this: void dummy(boost::archive::xml_iarchive ar, A a, B b) {

[Bug c++/38828] g++ 4.3.2: -O2 without -fno-inline-small-functions makes some template instantiations disappear

2009-01-14 Thread ronan dot lehy at probayes dot com
--- Comment #6 from ronan dot lehy at probayes dot com 2009-01-14 09:11 --- Thanks a lot for considering this report! (In reply to comment #5) Also since it is not explicitly instatinated, the template does not need to be in the object file really. I believe this is instantiated

[Bug c++/38828] g++ 4.3.2: -O2 without -fno-inline-small-functions makes some template instantiations disappear

2009-01-14 Thread ronan dot lehy at probayes dot com
--- Comment #7 from ronan dot lehy at probayes dot com 2009-01-14 09:14 --- (In reply to comment #6) I believe this is instantiated with Archive = boost_xml_iarchive by the BOOST_EXPORT macro. I mean BOOST_CLASS_EXPORT(), of course, sorry. --

[Bug c++/38828] g++ 4.3.2: -O2 without -fno-inline-small-functions makes some template instantiations disappear

2009-01-13 Thread ronan dot lehy at probayes dot com
--- Comment #1 from ronan dot lehy at probayes dot com 2009-01-13 16:35 --- Created an attachment (id=17088) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=17088action=view) Preprocessed source -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38828

[Bug c++/38828] g++ 4.3.2: -O2 without -fno-inline-small-functions makes some template instantiations disappear

2009-01-13 Thread ronan dot lehy at probayes dot com
--- Comment #2 from ronan dot lehy at probayes dot com 2009-01-13 16:39 --- (In reply to comment #1) Created an attachment (id=17088) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=17088action=view) I had to trim a bit the source to be make the preprocessed source fit into 1000

[Bug c++/38828] g++ 4.3.2: -O2 without -fno-inline-small-functions makes some template instantiations disappear

2009-01-13 Thread ronan dot lehy at probayes dot com
--- Comment #3 from ronan dot lehy at probayes dot com 2009-01-13 16:42 --- Created an attachment (id=17089) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=17089action=view) Original source (#includes Boost headers). -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38828

[Bug c++/38828] g++ 4.3.2: -O2 without -fno-inline-small-functions makes some template instantiations disappear

2009-01-13 Thread pinskia at gcc dot gnu dot org
--- Comment #4 from pinskia at gcc dot gnu dot org 2009-01-13 20:43 --- serialize with an empty body is a pure function so it will be can be optimized away without any effects. I don't see the issue here really. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38828

[Bug c++/38828] g++ 4.3.2: -O2 without -fno-inline-small-functions makes some template instantiations disappear

2009-01-13 Thread pinskia at gcc dot gnu dot org
--- Comment #5 from pinskia at gcc dot gnu dot org 2009-01-13 20:46 --- Also since it is not explicitly instatinated, the template does not need to be in the object file really. Can you give a better example of why do you think this is wrong besides a nm testcase? It might be due to