public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/18757] New: ICE (on invalid) in get_innermost_template_args
@ 2004-12-01 15:16 jakub at gcc dot gnu dot org
  2004-12-01 15:21 ` [Bug c++/18757] [3.4/4.0 Regression] " pinskia at gcc dot gnu dot org
                   ` (9 more replies)
  0 siblings, 10 replies; 11+ messages in thread
From: jakub at gcc dot gnu dot org @ 2004-12-01 15:16 UTC (permalink / raw)
  To: gcc-bugs

When compiling:
struct S
{
  typedef void *P;
};

namespace M
{
  typedef void *P;
};

namespace N
{
class S;
struct N
{
  template <typename T> void foo (typename T::P);
};

struct R
{
  N& n;
  template <class U, class T> inline void bar (U p);
  void baz (M::P);
};

template <class U, class T>
inline void
R::bar (U p)
{
  n.foo <typename T> (p);
  delete this;
}

void R::baz (M::P p)
{
  bar <M::P, S>(p);
}

}

I get:
141300.ii: In member function `void N::R::bar(U) [with U = void*, T = N::S]':
141300.ii:36:   instantiated from here
141300.ii:30: internal compiler error: tree check: expected tree_vec, have
error_mark in get_innermost_template_args, at cp/pt.c:575
with checking enabled and usually segfault with checking disabled, in both
GCC 3.4.x and 4.0.0.
explicit_targs passed down from build_new_method_call is error_mark.

-- 
           Summary: ICE (on invalid) in get_innermost_template_args
           Product: gcc
           Version: 4.0.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: jakub at gcc dot gnu dot org
                CC: gcc-bugs at gcc dot gnu dot org


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


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug c++/18757] [3.4/4.0 Regression] ICE (on invalid) in get_innermost_template_args
  2004-12-01 15:16 [Bug c++/18757] New: ICE (on invalid) in get_innermost_template_args jakub at gcc dot gnu dot org
@ 2004-12-01 15:21 ` pinskia at gcc dot gnu dot org
  2004-12-01 16:24 ` reichelt at gcc dot gnu dot org
                   ` (8 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-12-01 15:21 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-12-01 15:20 -------
: Search converges between 2003-08-10-trunk (#319) and 2003-08-11-trunk (#320).

Confirmed.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|                            |1
           Keywords|                            |ice-on-invalid-code
   Last reconfirmed|0000-00-00 00:00:00         |2004-12-01 15:20:50
               date|                            |
            Summary|ICE (on invalid) in         |[3.4/4.0 Regression] ICE (on
                   |get_innermost_template_args |invalid) in
                   |                            |get_innermost_template_args
   Target Milestone|---                         |3.4.4


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


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug c++/18757] [3.4/4.0 Regression] ICE (on invalid) in get_innermost_template_args
  2004-12-01 15:16 [Bug c++/18757] New: ICE (on invalid) in get_innermost_template_args jakub at gcc dot gnu dot org
  2004-12-01 15:21 ` [Bug c++/18757] [3.4/4.0 Regression] " pinskia at gcc dot gnu dot org
@ 2004-12-01 16:24 ` reichelt at gcc dot gnu dot org
  2004-12-08 10:59 ` lerdsuwa at gcc dot gnu dot org
                   ` (7 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: reichelt at gcc dot gnu dot org @ 2004-12-01 16:24 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From reichelt at gcc dot gnu dot org  2004-12-01 16:24 -------
Here's a reduced example:

====================================================================
struct A
{
    template<typename>   void foo(int);
    template<typename T> void bar(T t) { this->foo<typename T>(t); }
};

void baz()
{
    A().bar(0);
}
====================================================================

If I remove "this->" the code compiles.
Hence, we have an accepts-invalid, too.


-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |reichelt at gcc dot gnu dot
                   |                            |org
           Keywords|                            |accepts-invalid, monitored


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


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug c++/18757] [3.4/4.0 Regression] ICE (on invalid) in get_innermost_template_args
  2004-12-01 15:16 [Bug c++/18757] New: ICE (on invalid) in get_innermost_template_args jakub at gcc dot gnu dot org
  2004-12-01 15:21 ` [Bug c++/18757] [3.4/4.0 Regression] " pinskia at gcc dot gnu dot org
  2004-12-01 16:24 ` reichelt at gcc dot gnu dot org
@ 2004-12-08 10:59 ` lerdsuwa at gcc dot gnu dot org
  2004-12-09 12:33 ` cvs-commit at gcc dot gnu dot org
                   ` (6 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: lerdsuwa at gcc dot gnu dot org @ 2004-12-08 10:59 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From lerdsuwa at gcc dot gnu dot org  2004-12-08 10:59 -------
There is a patch here:
  http://gcc.gnu.org/ml/gcc-patches/2004-12/msg00538.html

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |patch


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


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug c++/18757] [3.4/4.0 Regression] ICE (on invalid) in get_innermost_template_args
  2004-12-01 15:16 [Bug c++/18757] New: ICE (on invalid) in get_innermost_template_args jakub at gcc dot gnu dot org
                   ` (2 preceding siblings ...)
  2004-12-08 10:59 ` lerdsuwa at gcc dot gnu dot org
@ 2004-12-09 12:33 ` cvs-commit at gcc dot gnu dot org
  2004-12-09 12:38 ` [Bug c++/18757] [3.4 " pinskia at gcc dot gnu dot org
                   ` (5 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2004-12-09 12:33 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From cvs-commit at gcc dot gnu dot org  2004-12-09 12:33 -------
Subject: Bug 18757

CVSROOT:	/cvs/gcc
Module name:	gcc
Changes by:	aoliva@gcc.gnu.org	2004-12-09 12:33:09

Modified files:
	gcc/cp         : ChangeLog parser.c 
	gcc/testsuite  : ChangeLog 
	gcc/testsuite/g++.dg/parse: typename5.C 
Added files:
	gcc/testsuite/g++.dg/parse: typename7.C 

Log message:
	gcc/cp/ChangeLog:
	PR c++/18757
	* parser.c (cp_parser_template_id): Don't create a CPP_TEMPLATE_ID
	if parsing failed.
	gcc/testsuite/ChangeLog:
	* g++.dg/parse/typename5.C: Adjust for new error.
	* g++.dg/parse/typename7.C: New.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/ChangeLog.diff?cvsroot=gcc&r1=1.4524&r2=1.4525
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/parser.c.diff?cvsroot=gcc&r1=1.290&r2=1.291
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.4729&r2=1.4730
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/parse/typename7.C.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/parse/typename5.C.diff?cvsroot=gcc&r1=1.2&r2=1.3



-- 


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


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug c++/18757] [3.4 Regression] ICE (on invalid) in get_innermost_template_args
  2004-12-01 15:16 [Bug c++/18757] New: ICE (on invalid) in get_innermost_template_args jakub at gcc dot gnu dot org
                   ` (3 preceding siblings ...)
  2004-12-09 12:33 ` cvs-commit at gcc dot gnu dot org
@ 2004-12-09 12:38 ` pinskia at gcc dot gnu dot org
  2004-12-15  5:16 ` aoliva at gcc dot gnu dot org
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-12-09 12:38 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-12-09 12:38 -------
Fixed at least on the mainline.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
      Known to work|                            |4.0.0
            Summary|[3.4/4.0 Regression] ICE (on|[3.4 Regression] ICE (on
                   |invalid) in                 |invalid) in
                   |get_innermost_template_args |get_innermost_template_args


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


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug c++/18757] [3.4 Regression] ICE (on invalid) in get_innermost_template_args
  2004-12-01 15:16 [Bug c++/18757] New: ICE (on invalid) in get_innermost_template_args jakub at gcc dot gnu dot org
                   ` (4 preceding siblings ...)
  2004-12-09 12:38 ` [Bug c++/18757] [3.4 " pinskia at gcc dot gnu dot org
@ 2004-12-15  5:16 ` aoliva at gcc dot gnu dot org
  2004-12-23 16:26 ` cvs-commit at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: aoliva at gcc dot gnu dot org @ 2004-12-15  5:16 UTC (permalink / raw)
  To: gcc-bugs



-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |aoliva at gcc dot gnu dot
                   |dot org                     |org
             Status|NEW                         |ASSIGNED


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


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug c++/18757] [3.4 Regression] ICE (on invalid) in get_innermost_template_args
  2004-12-01 15:16 [Bug c++/18757] New: ICE (on invalid) in get_innermost_template_args jakub at gcc dot gnu dot org
                   ` (5 preceding siblings ...)
  2004-12-15  5:16 ` aoliva at gcc dot gnu dot org
@ 2004-12-23 16:26 ` cvs-commit at gcc dot gnu dot org
  2004-12-23 16:39 ` pinskia at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2004-12-23 16:26 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From cvs-commit at gcc dot gnu dot org  2004-12-23 16:26 -------
Subject: Bug 18757

CVSROOT:	/cvs/gcc
Module name:	gcc
Branch: 	gcc-3_4-branch
Changes by:	aoliva@gcc.gnu.org	2004-12-23 16:25:51

Modified files:
	gcc/cp         : ChangeLog parser.c 
	gcc/testsuite  : ChangeLog 
	gcc/testsuite/g++.dg/parse: typename5.C 
Added files:
	gcc/testsuite/g++.dg/parse: typename7.C 

Log message:
	gcc/cp/ChangeLog:
	PR c++/18757
	* parser.c (cp_parser_template_id): Don't create a CPP_TEMPLATE_ID
	if parsing failed.
	gcc/testsuite/ChangeLog:
	* g++.dg/parse/typename5.C: Adjust for new error.
	* g++.dg/parse/typename7.C: New.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.3892.2.186&r2=1.3892.2.187
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/parser.c.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.157.2.47&r2=1.157.2.48
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.3389.2.334&r2=1.3389.2.335
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/parse/typename7.C.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=NONE&r2=1.1.10.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/parse/typename5.C.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.2&r2=1.2.4.1



-- 


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


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug c++/18757] [3.4 Regression] ICE (on invalid) in get_innermost_template_args
  2004-12-01 15:16 [Bug c++/18757] New: ICE (on invalid) in get_innermost_template_args jakub at gcc dot gnu dot org
                   ` (6 preceding siblings ...)
  2004-12-23 16:26 ` cvs-commit at gcc dot gnu dot org
@ 2004-12-23 16:39 ` pinskia at gcc dot gnu dot org
  2005-02-01  5:57 ` cvs-commit at gcc dot gnu dot org
  2005-02-01  7:04 ` cvs-commit at gcc dot gnu dot org
  9 siblings, 0 replies; 11+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-12-23 16:39 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-12-23 16:39 -------
Fixed.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|                            |FIXED


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


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug c++/18757] [3.4 Regression] ICE (on invalid) in get_innermost_template_args
  2004-12-01 15:16 [Bug c++/18757] New: ICE (on invalid) in get_innermost_template_args jakub at gcc dot gnu dot org
                   ` (7 preceding siblings ...)
  2004-12-23 16:39 ` pinskia at gcc dot gnu dot org
@ 2005-02-01  5:57 ` cvs-commit at gcc dot gnu dot org
  2005-02-01  7:04 ` cvs-commit at gcc dot gnu dot org
  9 siblings, 0 replies; 11+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2005-02-01  5:57 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-02-01 05:56 -------
Subject: Bug 18757

CVSROOT:	/cvs/gcc
Module name:	gcc
Changes by:	aoliva@gcc.gnu.org	2005-02-01 05:56:08

Modified files:
	gcc/testsuite  : ChangeLog 
	gcc/cp         : ChangeLog parser.c pt.c 
	gcc/testsuite/g++.dg/parse: typename7.C 

Log message:
	gcc/cp/ChangeLog:
	PR c++/18757
	PR c++/19366
	PR c++/19499
	* parser.c (cp_parser_template_id): Revert 2004-12-09's patch.
	Issue an error when creating the template id.
	* pt.c (fn_type_unification): Return early if the explicit
	template arg list is an error_mark_node.
	gcc/testsuite/ChangeLog:
	* g++.dg/parse/typename7.C: Adjust error messages.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.4967&r2=1.4968
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/ChangeLog.diff?cvsroot=gcc&r1=1.4607&r2=1.4608
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/parser.c.diff?cvsroot=gcc&r1=1.306&r2=1.307
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/pt.c.diff?cvsroot=gcc&r1=1.970&r2=1.971
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/parse/typename7.C.diff?cvsroot=gcc&r1=1.1&r2=1.2



-- 


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


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug c++/18757] [3.4 Regression] ICE (on invalid) in get_innermost_template_args
  2004-12-01 15:16 [Bug c++/18757] New: ICE (on invalid) in get_innermost_template_args jakub at gcc dot gnu dot org
                   ` (8 preceding siblings ...)
  2005-02-01  5:57 ` cvs-commit at gcc dot gnu dot org
@ 2005-02-01  7:04 ` cvs-commit at gcc dot gnu dot org
  9 siblings, 0 replies; 11+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2005-02-01  7:04 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-02-01 07:04 -------
Subject: Bug 18757

CVSROOT:	/cvs/gcc
Module name:	gcc
Branch: 	gcc-3_4-branch
Changes by:	aoliva@gcc.gnu.org	2005-02-01 07:04:01

Modified files:
	gcc/testsuite  : ChangeLog 
	gcc/cp         : ChangeLog parser.c pt.c 
	gcc/testsuite/g++.dg/parse: typename7.C 

Log message:
	gcc/cp/ChangeLog:
	PR c++/18757
	PR c++/19366
	PR c++/19499
	* parser.c (cp_parser_template_id): Revert 2004-12-09's patch.
	Issue an error when creating the template id.
	* pt.c (fn_type_unification): Return early if the explicit
	template arg list is an error_mark_node.
	gcc/testsuite/ChangeLog:
	* g++.dg/parse/typename7.C: Adjust error messages.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.3389.2.354&r2=1.3389.2.355
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.3892.2.193&r2=1.3892.2.194
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/parser.c.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.157.2.50&r2=1.157.2.51
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/pt.c.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.816.2.49&r2=1.816.2.50
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/parse/typename7.C.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.1.10.1&r2=1.1.10.2



-- 


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


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2005-02-01  7:04 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-12-01 15:16 [Bug c++/18757] New: ICE (on invalid) in get_innermost_template_args jakub at gcc dot gnu dot org
2004-12-01 15:21 ` [Bug c++/18757] [3.4/4.0 Regression] " pinskia at gcc dot gnu dot org
2004-12-01 16:24 ` reichelt at gcc dot gnu dot org
2004-12-08 10:59 ` lerdsuwa at gcc dot gnu dot org
2004-12-09 12:33 ` cvs-commit at gcc dot gnu dot org
2004-12-09 12:38 ` [Bug c++/18757] [3.4 " pinskia at gcc dot gnu dot org
2004-12-15  5:16 ` aoliva at gcc dot gnu dot org
2004-12-23 16:26 ` cvs-commit at gcc dot gnu dot org
2004-12-23 16:39 ` pinskia at gcc dot gnu dot org
2005-02-01  5:57 ` cvs-commit at gcc dot gnu dot org
2005-02-01  7:04 ` cvs-commit at gcc dot gnu dot org

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).