Package: g++-3.2 Version: 1:3.2.3-0pre3 Severity: normal == [EMAIL PROTECTED]:~$ cat foo.cpp #include <iostream>
class foo { public: ~foo() { std::cout << "foo destroyed" << std::endl; } }; int main(void) { switch (0) { case 0: foo x; case 1: ; } } [EMAIL PROTECTED]:~$ g++ -ofoo foo.cpp foo.cpp: In function `int main()': foo.cpp:14: jump to case label foo.cpp:13: enters scope of non-POD `foo x' Internal compiler error: Error reporting routines re-entered. Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions. == This comes from genrtl_case_label(), which is trying to do this: warning_with_decl (TREE_PURPOSE (cleanup), "destructor needed for `%#D'"); Unfortunately that string winds up in format_with_decl(), which does this: /* Do magic to get around lack of varargs support for insertion of arguments into existing list. We know that the decl is first; we ass_u_me that it will be printed with "%s". */ ... else if (*(p + 1) != 's') abort (); The fix could go either way. One of them involves updating all the translations. *punt* -- System Information: Debian Release: testing/unstable Architecture: i386 Kernel: Linux cyclone 2.4.21-pre4-ac4 #30 Wed Feb 12 21:40:14 GMT 2003 i686 Locale: LANG=C, LC_CTYPE=C Versions of packages g++-3.2 depends on: ii gcc-3.2 1:3.2.3-0pre3 The GNU C compiler ii gcc-3.2-base 1:3.2.3-0pre3 The GNU Compiler Collection (base ii libc6 2.3.1-14 GNU C Library: Shared libraries an ii libstdc++5-dev 1:3.2.3-0pre3 The GNU Standard C++ Library v3 (d -- no debconf information -- .''`. ** Debian GNU/Linux ** | Andrew Suffield : :' : http://www.debian.org/ | Dept. of Computing, `. `' | Imperial College, `- -><- | London, UK
pgp9PxPdTVAZe.pgp
Description: PGP signature