From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28218 invoked by alias); 30 Jul 2003 19:08:17 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 28190 invoked by uid 48); 30 Jul 2003 19:08:16 -0000 Date: Wed, 30 Jul 2003 19:08:00 -0000 Message-ID: <20030730190816.28189.qmail@sources.redhat.com> From: "bkoz at gcc dot gnu dot org" To: gcc-bugs@gcc.gnu.org In-Reply-To: <20030220055600.9767.bkoz@redhat.com> References: <20030220055600.9767.bkoz@redhat.com> Reply-To: gcc-bugzilla@gcc.gnu.org Subject: [Bug optimization/9767] explicit instantiation of class members unoptimized? X-Bugzilla-Reason: CC X-SW-Source: 2003-07/txt/msg03594.txt.bz2 List-Id: PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=9767 ------- Additional Comments From bkoz at gcc dot gnu dot org 2003-07-30 19:08 ------- Actually the transition to -funit-at-a-time is not seamless for libstdc++. I first re-compiled libstdc++ by using make CXXFLAGS="-g -O2 -funit-at-a-time" all after removing the build directory. Then, I added -funit-at-a-time to scripts/testsuite_flags.h so that --cxxflags) CXXFLAGS_save="-g -O2 -funit-at-a-time" Then, I ran make-check in the libstdc++ build directory. I got seven new failures: FAIL: 22_locale/numpunct/members/pod/2.cc (test for excess errors) WARNING: 22_locale/numpunct/members/pod/2.cc compilation failed to produce executable XPASS: 26_numerics/c99_classification_macros_c.cc (test for excess errors) FAIL: 26_numerics/complex_inserters_extractors.cc (test for excess errors) WARNING: 26_numerics/complex_inserters_extractors.cc compilation failed to produce executable FAIL: 27_io/basic_ios/cons/char/3.cc (test for excess errors) WARNING: 27_io/basic_ios/cons/char/3.cc compilation failed to produce executableFAIL: 27_io/basic_istream/sentry/char/3983-fstream.cc (test for excess errors) WARNING: 27_io/basic_istream/sentry/char/3983-fstream.cc compilation failed to produce executable FAIL: 27_io/basic_istream/sentry/char/3983-sstream.cc (test for excess errors) WARNING: 27_io/basic_istream/sentry/char/3983-sstream.cc compilation failed to produce executable FAIL: 27_io/basic_ostream/sentry/char/3983-fstream.cc (test for excess errors) WARNING: 27_io/basic_ostream/sentry/char/3983-fstream.cc compilation failed to produce executable FAIL: 27_io/basic_ostream/sentry/char/3983-sstream.cc (test for excess errors) WARNING: 27_io/basic_ostream/sentry/char/3983-sstream.cc compilation failed to produce executable === libstdc++-v3 Summary === # of expected passes 2010 # of unexpected failures 7 # of unexpected successes 1 # of expected failures 9 These all exhibited the same pathology: missing definitions for virtual dtors. They look like this: Executing on host: /mnt/hd/bld/gcc/gcc/g++ -shared-libgcc -B/mnt/hd/bld/gcc/gcc/ -nostdinc++ -L/mnt/hd/bld/gcc/i686-pc-linux-gnu/libstdc++-v3/src -L/mnt/hd/bld/gcc/i686-pc-linux-gnu/libstdc++-v3/src/.libs -B/mnt/hd/bld/H-x86-gcc/i686-pc-linux-gnu/bin/ -B/mnt/hd/bld/H-x86-gcc/i686-pc-linux-gnu/lib/ -isystem /mnt/hd/bld/H-x86-gcc/i686-pc-linux-gnu/include -isystem /mnt/hd/bld/H-x86-gcc/i686-pc-linux-gnu/sys-include -include bits/stdc++.h -g -O2 -funit-at-a-time -ffunction-sections -fdata-sections -fmessage-length=0 -DLOCALEDIR="/mnt/hd/bld/gcc/i686-pc-linux-gnu/libstdc++-v3/po/share/locale" -nostdinc++ -I/mnt/hd/bld/gcc/i686-pc-linux-gnu/libstdc++-v3/include/i686-pc-linux-gnu -I/mnt/hd/bld/gcc/i686-pc-linux-gnu/libstdc++-v3/include -I/mnt/hd/src/gcc/libstdc++-v3/libsupc++ -I/mnt/hd/src/gcc/libstdc++-v3/include/backward -I/mnt/hd/src/gcc/libstdc++-v3/testsuite /mnt/hd/src/gcc/libstdc++-v3/testsuite/22_locale/numpunct/members/pod/2.cc -D_GLIBCXX_ASSERT -L/mnt/hd/bld/gcc/i686-pc-linux-gnu//libstdc++-v3/testsuite -lv3test -lm -o ./2.exe (timeout = 300) /tmp/cc6w3g7T.o(.gnu.linkonce.r._ZTVSt19basic_ostringstreamIN9__gnu_cxx9characterItj11__mbstate_tEESt11char_traitsIS3_ESaIS3_EE+0xc): In function `main': /mnt/hd/bld/gcc/i686-pc-linux-gnu/libstdc++-v3/include/streambuf:504: undefined reference to `std::basic_ostringstream<__gnu_cxx::character, std::char_traits<__gnu_cxx::character >, std::allocator<__gnu_cxx::character > >::~basic_ostringstream [in-charge]()' /tmp/cc6w3g7T.o(.gnu.linkonce.r._ZTVSt19basic_ostringstreamIN9__gnu_cxx9characterItj11__mbstate_tEESt11char_traitsIS3_ESaIS3_EE+0x10): In function `main': /mnt/hd/bld/gcc/i686-pc-linux-gnu/libstdc++-v3/include/bits/locale_facets.tcc:705: undefined reference to `std::basic_ostringstream<__gnu_cxx::character, std::char_traits<__gnu_cxx::character >, std::allocator<__gnu_cxx::character > >::~basic_ostringstream [in-charge deleting]()' /tmp/cc6w3g7T.o(.gnu.linkonce.r._ZTVSt19basic_ostringstreamIN9__gnu_cxx9characterItj11__mbstate_tEESt11char_traitsIS3_ESaIS3_EE+0x20): In function `test01()': /mnt/hd/bld/gcc/i686-pc-linux-gnu/libstdc++-v3/include/bits/locale_classes.h:278: undefined reference to `virtual thunk [v:0,-12] to std::basic_ostringstream<__gnu_cxx::character, std::char_traits<__gnu_cxx::character >, std::allocator<__gnu_cxx::character > >::~basic_ostringstream [in-charge]()' /tmp/cc6w3g7T.o(.gnu.linkonce.r._ZTVSt19basic_ostringstreamIN9__gnu_cxx9characterItj11__mbstate_tEESt11char_traitsIS3_ESaIS3_EE+0x24): In function `test01()': /mnt/hd/bld/gcc/i686-pc-linux-gnu/libstdc++-v3/include/bits/basic_string.tcc:380: undefined reference to `virtual thunk [v:0,-12] to std::basic_ostringstream<__gnu_cxx::character, std::char_traits<__gnu_cxx::character >, std::allocator<__gnu_cxx::character > >::~basic_ostringstream [in-charge deleting]()' /tmp/cc6w3g7T.o(.gnu.linkonce.r._ZTCSt19basic_ostringstreamIN9__gnu_cxx9characterItj11__mbstate_tEESt11char_traitsIS3_ESaIS3_EE0_St13basic_ostreamIS3_S5_E+0xc): In function `main': /mnt/hd/bld/gcc/i686-pc-linux-gnu/libstdc++-v3/include/streambuf:504: undefined reference to `std::basic_ostream<__gnu_cxx::character, std::char_traits<__gnu_cxx::character > >::~basic_ostream [in-charge]()' /tmp/cc6w3g7T.o(.gnu.linkonce.r._ZTCSt19basic_ostringstreamIN9__gnu_cxx9characterItj11__mbstate_tEESt11char_traitsIS3_ESaIS3_EE0_St13basic_ostreamIS3_S5_E+0x10): In function `main': /mnt/hd/bld/gcc/i686-pc-linux-gnu/libstdc++-v3/include/bits/locale_facets.tcc:705: undefined reference to `std::basic_ostream<__gnu_cxx::character, std::char_traits<__gnu_cxx::character > >::~basic_ostream [in-charge deleting]()' /tmp/cc6w3g7T.o(.gnu.linkonce.r._ZTCSt19basic_ostringstreamIN9__gnu_cxx9characterItj11__mbstate_tEESt11char_traitsIS3_ESaIS3_EE0_St13basic_ostreamIS3_S5_E+0x20): In function `test01()': /mnt/hd/bld/gcc/i686-pc-linux-gnu/libstdc++-v3/include/bits/locale_classes.h:278: undefined reference to `virtual thunk [v:0,-12] to std::basic_ostream<__gnu_cxx::character, std::char_traits<__gnu_cxx::character > >::~basic_ostream [in-charge]()' /tmp/cc6w3g7T.o(.gnu.linkonce.r._ZTCSt19basic_ostringstreamIN9__gnu_cxx9characterItj11__mbstate_tEESt11char_traitsIS3_ESaIS3_EE0_St13basic_ostreamIS3_S5_E+0x24): In function `test01()': /mnt/hd/bld/gcc/i686-pc-linux-gnu/libstdc++-v3/include/bits/basic_string.tcc:380: undefined reference to `virtual thunk [v:0,-12] to std::basic_ostream<__gnu_cxx::character, std::char_traits<__gnu_cxx::character > >::~basic_ostream [in-charge deleting]()' /tmp/cc6w3g7T.o(.gnu.linkonce.r._ZTVSt13basic_ostreamIN9__gnu_cxx9characterItj11__mbstate_tEESt11char_traitsIS3_EE+0xc): In function `main': /mnt/hd/bld/gcc/i686-pc-linux-gnu/libstdc++-v3/include/streambuf:504: undefined reference to `std::basic_ostream<__gnu_cxx::character, std::char_traits<__gnu_cxx::character > >::~basic_ostream [in-charge]()' /tmp/cc6w3g7T.o(.gnu.linkonce.r._ZTVSt13basic_ostreamIN9__gnu_cxx9characterItj11__mbstate_tEESt11char_traitsIS3_EE+0x10): In function `main': /mnt/hd/bld/gcc/i686-pc-linux-gnu/libstdc++-v3/include/bits/locale_facets.tcc:705: undefined reference to `std::basic_ostream<__gnu_cxx::character, std::char_traits<__gnu_cxx::character > >::~basic_ostream [in-charge deleting]()' /tmp/cc6w3g7T.o(.gnu.linkonce.r._ZTVSt13basic_ostreamIN9__gnu_cxx9characterItj11__mbstate_tEESt11char_traitsIS3_EE+0x20): In function `test01()': /mnt/hd/bld/gcc/i686-pc-linux-gnu/libstdc++-v3/include/bits/locale_classes.h:278: undefined reference to `virtual thunk [v:0,-12] to std::basic_ostream<__gnu_cxx::character, std::char_traits<__gnu_cxx::character > >::~basic_ostream [in-charge]()' /tmp/cc6w3g7T.o(.gnu.linkonce.r._ZTVSt13basic_ostreamIN9__gnu_cxx9characterItj11__mbstate_tEESt11char_traitsIS3_EE+0x24): In function `test01()': /mnt/hd/bld/gcc/i686-pc-linux-gnu/libstdc++-v3/include/bits/basic_string.tcc:380: undefined reference to `virtual thunk [v:0,-12] to std::basic_ostream<__gnu_cxx::character, std::char_traits<__gnu_cxx::character > >::~basic_ostream [in-charge deleting]()' collect2: ld returned 1 exit status compiler exited with status 1