From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2577 invoked by alias); 7 Aug 2003 18:33:09 -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 2570 invoked by uid 48); 7 Aug 2003 18:33:09 -0000 Date: Thu, 07 Aug 2003 18:33:00 -0000 From: "James dot W dot Mckelvey at jpl dot nasa dot gov" To: gcc-bugs@gcc.gnu.org Message-ID: <20030807183306.11847.James.W.Mckelvey@jpl.nasa.gov> Reply-To: gcc-bugzilla@gcc.gnu.org Subject: [Bug c++/11847] New: std::string as template argument no longer works X-Bugzilla-Reason: CC X-SW-Source: 2003-08/txt/msg01054.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=11847 Summary: std::string as template argument no longer works Product: gcc Version: 3.4 Status: UNCONFIRMED Severity: normal Priority: P2 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: James dot W dot Mckelvey at jpl dot nasa dot gov CC: gcc-bugs at gcc dot gnu dot org GCC build triplet: sparc-sun-solaris2.7 GCC host triplet: sparc-sun-solaris2.7 GCC target triplet: sparc-sun-solaris2.7 This error was introduced a few weeks ago. The problem is not in class X, but in template class Y creating an object of class X using a std::string template argument. If Y is made non-template, the error disappears. This code also works on the Compaq cxx and others, so I'm convinced it's a bug. Reading specs from /mnt/home3/utilities/lib/gcc/sparc-sun-solaris2.7/3.4/specs Configured with: /mnt/home3/utilities/gcc/configure --prefix=/mnt/home3/utilities --verbose --with-as=/mnt/home3/utilities/bin/as --with-ld=/mnt/home3/utilities/bin/ld --with-gnu-as --with-gnu-ld --disable-multilib --enable-languages=c++ Thread model: posix gcc version 3.4 20030806 (experimental) /mnt/home3/utilities/libexec/gcc/sparc-sun-solaris2.7/3.4/cc1plus -quiet -v zz.cc -quiet -dumpbase zz.cc -mcpu=v7 -auxbase zz -version -o /tmp/ccy1ULwk.s #include "..." search starts here: #include <...> search starts here: /mnt/home3/utilities/lib/gcc/sparc-sun-solaris2.7/3.4/../../../../include/c++/3.4 /mnt/home3/utilities/lib/gcc/sparc-sun-solaris2.7/3.4/../../../../include/c++/3.4/sparc-sun-solaris2.7 /mnt/home3/utilities/lib/gcc/sparc-sun-solaris2.7/3.4/../../../../include/c++/3.4/backward /usr/local/include /mnt/home3/utilities/include /mnt/home3/utilities/lib/gcc/sparc-sun-solaris2.7/3.4/include /mnt/home3/utilities/lib/gcc/sparc-sun-solaris2.7/3.4/../../../../sparc-sun-solaris2.7/include /usr/include End of search list. GNU C++ version 3.4 20030806 (experimental) (sparc-sun-solaris2.7) compiled by GNU C version 3.4 20030806 (experimental). GGC heuristics: --param ggc-min-expand=65 --param ggc-min-heapsize=65536 zz.cc: In instantiation of `Y': zz.cc:26: instantiated from here zz.cc:18: error: could not convert template argument `&s' to `const std::basic_string, std::allocator >&' #include template class X { }; extern const std::string s; template class Y { X x; }; int main(void) { Y y; return 0; } const std::string s("who");