------- Additional Comments From aoliva at redhat dot com  2004-12-29 08:04 
-------
Subject: Re:  New: [4.0 regression] ICE on invalid template parameter

On Dec 23, 2004, "reichelt at gcc dot gnu dot org" <[EMAIL PROTECTED]> wrote:

> The following invalid code snippet triggers an ICE on mainline:
> ==============================================
> template<int> struct A;
> template<> struct A<template> {};
> ==============================================

> bug.cc:2: error: missing '>' to terminate the template argument list
> bug.cc:2: error: template argument 1 is invalid
> bug.cc:2: error: missing '>' to terminate the template argument list
> bug.cc:2: error: template argument 1 is invalid
> bug.cc:2: error: 'A' is not a template
> bug.cc:2: error: missing '>' to terminate the template argument list
> bug.cc:2: internal compiler error: Segmentation fault
> Please submit a full bug report, [etc.]

> Alexandre, this was causes by your path for PR18757:
> http://gcc.gnu.org/ml/gcc-cvs/2004-12/msg00382.html

> Could you please have a look?

This patch fixes it, but I'm not entirely sure this is the best
location for this test.  Tested on amd64-linux-gnu, no failures.  Ok
to install?

Index: gcc/cp/ChangeLog
from  Alexandre Oliva  <[EMAIL PROTECTED]>

        * pt.c (redeclare_class_template): Don't crash when parms
        parsing failed.

Index: gcc/cp/pt.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/cp/pt.c,v
retrieving revision 1.962
diff -u -p -r1.962 pt.c
--- gcc/cp/pt.c 23 Dec 2004 19:54:08 -0000 1.962
+++ gcc/cp/pt.c 29 Dec 2004 07:32:11 -0000
@@ -3234,6 +3234,11 @@ redeclare_class_template (tree type, tre
        type.  */
     return;
 
+  /* If the template parameters could not be parsed, assume we already
+     issued an error and bail out without crashing.  */
+  if (! parms)
+    return;
+
   parms = INNERMOST_TEMPLATE_PARMS (parms);
   tmpl_parms = DECL_INNERMOST_TEMPLATE_PARMS (tmpl);
 

-- 
Alexandre Oliva             http://www.ic.unicamp.br/~oliva/
Red Hat Compiler Engineer   [EMAIL PROTECTED], gcc.gnu.org}
Free Software Evangelist  [EMAIL PROTECTED], gnu.org}


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19143

Reply via email to