* Error in 971122 i686-pc-linux-gnu @ 1997-11-27 19:10 Ross Alexander 1997-11-27 22:49 ` Mark Mitchell 0 siblings, 1 reply; 5+ messages in thread From: Ross Alexander @ 1997-11-27 19:10 UTC (permalink / raw) To: egcs; +Cc: law I get an error 9 in the following code ---------------------------------------------------------------------- template <class X> int foo<X> (X a) { X::A b; // = a; } ---------------------------------------------------------------------- stimpy:~$ g++ -v test.cc Reading specs from /usr/lib/gcc-lib/i686-pc-linux-gnu/egcs-2.90.18/specs gcc version egcs-2.90.18 971122 (gcc2-970802 experimental) /usr/lib/gcc-lib/i686-pc-linux-gnu/egcs-2.90.18/cpp -lang-c++ -v -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=90 -D__ELF__ -Dunix -Dlinux -D__ELF__ -D__unix__ -D__linux__ -D__unix -D__linux -Asystem(posix) -D__EXCEPTIONS -Di386 -Di686 -Asystem(unix) -Acpu(i386) -Amachine(i386) -D__i386__ -D__i686__ -Asystem(unix) -Acpu(i386) -Amachine(i386) test.cc /tmp/cca11795.ii GNU CPP version egcs-2.90.18 971122 (gcc2-970802 experimental) (i386 Linux/ELF) #include "..." search starts here: #include <...> search starts here: /usr/include/g++ /usr/local/include /usr/i686-pc-linux-gnu/include /usr/lib/gcc-lib/i686-pc-linux-gnu/egcs-2.90.18/include /usr/include End of search list. /usr/lib/gcc-lib/i686-pc-linux-gnu/egcs-2.90.18/cc1plus /tmp/cca11795.ii -quiet -dumpbase test.cc -version -o /tmp/cca11795.s GNU C++ version egcs-2.90.18 971122 (gcc2-970802 experimental) (i686-pc-linux-gnu) compiled by GNU C version egcs-2.90.16 971105 (gcc2-970802 experimental). test.cc:2: Internal compiler error 9. test.cc:2: Please submit a full bug report to `egcs-bugs@cygnus.com'. stimpy:~$ ---------------------------------------------------------------------- ^ permalink raw reply [flat|nested] 5+ messages in thread
* Error in 971122 i686-pc-linux-gnu 1997-11-27 19:10 Error in 971122 i686-pc-linux-gnu Ross Alexander @ 1997-11-27 22:49 ` Mark Mitchell 1997-11-28 1:30 ` Jason Merrill 1997-11-28 2:23 ` Jason Merrill 0 siblings, 2 replies; 5+ messages in thread From: Mark Mitchell @ 1997-11-27 22:49 UTC (permalink / raw) To: Ross Alexander; +Cc: egcs, law, Jason Merrill Jason et. al. -- I wonder if the implicit typename stuff should be disabled for the release. There seem to be a lot of internal errors being reported in cases where the users should have used 'typename'. (Ross, your code is illegal: you have to say 'typename X::A'.) At the very least, we could issue a warning on this so that users would have a hint about what they might do to avoid triggering the crash. >>>>> "Ross" == Ross Alexander <rossa@stimpy.math.auckland.ac.nz> writes: Ross> I get an error 9 in the following code Ross> ---------------------------------------------------------------------- Ross> template <class X> int foo<X> (X a) { X::A b; // = a; } Ross> ---------------------------------------------------------------------- Ross> stimpy:~$ g++ -v test.cc Reading specs from Ross> experimental). test.cc:2: Internal compiler error 9. Ross> test.cc:2: Please submit a full bug report to Ross> `egcs-bugs@cygnus.com'. stimpy:~$ Ross> ---------------------------------------------------------------------- -- Mark Mitchell mmitchell@usa.net Stanford University http://www.stanford.edu ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Error in 971122 i686-pc-linux-gnu 1997-11-27 22:49 ` Mark Mitchell @ 1997-11-28 1:30 ` Jason Merrill 1997-11-28 2:23 ` Jason Merrill 1 sibling, 0 replies; 5+ messages in thread From: Jason Merrill @ 1997-11-28 1:30 UTC (permalink / raw) To: mmitchell; +Cc: Ross Alexander, egcs, law >>>>> Mark Mitchell <mmitchell@usa.net> writes: > I wonder if the implicit typename stuff should be disabled for the > release. There seem to be a lot of internal errors being reported in > cases where the users should have used 'typename'. Ross> ---------------------------------------------------------------------- Ross> template <class X> int foo<X> (X a) { X::A b; // = a; } Ross> ---------------------------------------------------------------------- This crash is caused by foo<X>, not X::A. You can't use a template-id when defining a primary template. Jason ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Error in 971122 i686-pc-linux-gnu 1997-11-27 22:49 ` Mark Mitchell 1997-11-28 1:30 ` Jason Merrill @ 1997-11-28 2:23 ` Jason Merrill 1997-12-01 18:46 ` C9X draft online Oleg Krivosheev 1 sibling, 1 reply; 5+ messages in thread From: Jason Merrill @ 1997-11-28 2:23 UTC (permalink / raw) To: mmitchell; +Cc: Ross Alexander, egcs, law Fri Nov 28 01:58:14 1997 Jason Merrill <jason@yorick.cygnus.com> * pt.c (check_explicit_specialization): Complain about using a template-id for a non-specialization. Fri Nov 28 01:56:35 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> * error.c (dump_decl): Handle TEMPLATE_ID_EXPR. Index: error.c =================================================================== RCS file: /cvs/cvsfiles/devo/gcc/cp/error.c,v retrieving revision 1.87 diff -c -r1.87 error.c *** error.c 1997/11/19 19:52:28 1.87 --- error.c 1997/11/28 09:57:11 *************** *** 776,781 **** --- 776,799 ---- } break; + case TEMPLATE_ID_EXPR: + { + tree args; + dump_type (TREE_OPERAND (t, 0), v); + OB_PUTC ('<'); + for (args = TREE_OPERAND (t, 1); args; args = TREE_CHAIN (args)) + { + if (TREE_CODE_CLASS (TREE_CODE (TREE_VALUE (args))) == 't') + dump_type (TREE_VALUE (args), 0); + else + dump_expr (TREE_VALUE (args), 0); + if (TREE_CHAIN (args)) + OB_PUTC2 (',', ' '); + } + OB_PUTC ('>'); + } + break; + case LABEL_DECL: OB_PUTID (DECL_NAME (t)); break; Index: pt.c =================================================================== RCS file: /cvs/cvsfiles/devo/gcc/cp/pt.c,v retrieving revision 1.270 diff -c -r1.270 pt.c *** pt.c 1997/11/27 19:25:31 1.270 --- pt.c 1997/11/28 10:18:15 *************** *** 496,507 **** && !processing_explicit_specialization (template_count) && !is_friend) { ! if (!have_def) /* This is not an explicit specialization. It must be an explicit instantiation. */ return 2; else if (pedantic) ! pedwarn ("Explicit specialization not preceeded by `template <>'"); } if (TREE_CODE (declarator) != TEMPLATE_ID_EXPR) --- 496,514 ---- && !processing_explicit_specialization (template_count) && !is_friend) { ! if (!have_def && ! template_header_count) /* This is not an explicit specialization. It must be an explicit instantiation. */ return 2; + else if (template_header_count > template_count + && !processing_specialization) + { + cp_error ("template-id `%D' in declaration of primary template", + declarator); + return 0; + } else if (pedantic) ! pedwarn ("explicit specialization not preceeded by `template <>'"); } if (TREE_CODE (declarator) != TEMPLATE_ID_EXPR) ^ permalink raw reply [flat|nested] 5+ messages in thread
* C9X draft online 1997-11-28 2:23 ` Jason Merrill @ 1997-12-01 18:46 ` Oleg Krivosheev 0 siblings, 0 replies; 5+ messages in thread From: Oleg Krivosheev @ 1997-12-01 18:46 UTC (permalink / raw) To: gcc2; +Cc: egcs i think it might be of general interest... http://www.dkuug.dk/JTC1/SC22/WG14/www/docs/n794.htm OK ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~1997-12-01 18:46 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 1997-11-27 19:10 Error in 971122 i686-pc-linux-gnu Ross Alexander 1997-11-27 22:49 ` Mark Mitchell 1997-11-28 1:30 ` Jason Merrill 1997-11-28 2:23 ` Jason Merrill 1997-12-01 18:46 ` C9X draft online Oleg Krivosheev
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).