public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/39754]  New: ICE: tree check: accessed elt 2 of tree_vec with 1 elts in tsubst, at cp/pt.c:9248
@ 2009-04-13 19:32 gcc at abeckmann dot de
  2009-04-13 21:26 ` [Bug c++/39754] [4.5 Regression] " hjl dot tools at gmail dot com
                   ` (13 more replies)
  0 siblings, 14 replies; 15+ messages in thread
From: gcc at abeckmann dot de @ 2009-04-13 19:32 UTC (permalink / raw)
  To: gcc-bugs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 3419 bytes --]

The following code produces an ICE in 4.5.0 while previous versions reported an
incomplete type error:

========== 8< ==========
template < typename > struct A ;
template < typename U , typename > struct B
{
        typedef U V ;
        A < V * > a ;
} ;
template < typename W > struct C
{
        A < W * > a ;
} ;
C < int > c ;
========== >8 ==========

---------- 4.5.0 ----------
$ x86_64-linux-gnu-g++-trunk -v -c ice-accessed-elt-2-of-tree_vec.ii

Using built-in specs.
Target: x86_64-unknown-linux-gnu
Configured with: ../gcc-trunk/configure
--prefix=/opt/software/gcc-x86_64/gcc-trunk --program-suffix=-trunk
--enable-languages=c,c++
Thread model: posix
gcc version 4.5.0 20090410 (experimental) (GCC)
COLLECT_GCC_OPTIONS='-v' '-c' '-shared-libgcc' '-mtune=generic'

/opt/software/gcc-x86_64/gcc-trunk/libexec/gcc/x86_64-unknown-linux-gnu/4.5.0/cc1plus
-fpreprocessed ice-accessed-elt-2-of-tree_vec.ii -quiet -dumpbase
ice-accessed-elt-2-of-tree_vec.ii -mtune=generic -auxbase
ice-accessed-elt-2-of-tree_vec -version -o /tmp/ccSsFbFa.s
GNU C++ (GCC) version 4.5.0 20090412 (experimental) (x86_64-unknown-linux-gnu)
        compiled by GNU C version 4.5.0 20090410 (experimental), GMP version
4.2.2, MPFR version 2.3.1.
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
Compiler executable checksum: b13346d60276f3352c4b7dd22e3889d7
ice-accessed-elt-2-of-tree_vec.ii: In instantiation of ‘C<int>’:
ice-accessed-elt-2-of-tree_vec.ii:11:   instantiated from here
ice-accessed-elt-2-of-tree_vec.ii:9: internal compiler error: tree check:
accessed elt 2 of tree_vec with 1 elts in tsubst, at cp/pt.c:9248
--------------------

---------- 4.4.0 ----------
$ x86_64-linux-gnu-g++-4.4.x -v -c ice-accessed-elt-2-of-tree_vec.ii

Using built-in specs.
Target: x86_64-unknown-linux-gnu
Configured with: ../gcc-4_4-branch/configure
--prefix=/opt/software/gcc-x86_64/gcc-4.4.x --program-suffix=-4.4.x
--enable-languages=c,c++ --enable-checking
Thread model: posix
gcc version 4.4.0 20090413 (prerelease) (GCC)
COLLECT_GCC_OPTIONS='-v' '-c' '-shared-libgcc' '-mtune=generic'

/opt/software/gcc-x86_64/gcc-4.4.x/libexec/gcc/x86_64-unknown-linux-gnu/4.4.0/cc1plus
-fpreprocessed ice-accessed-elt-2-of-tree_vec.ii -quiet -dumpbase
ice-accessed-elt-2-of-tree_vec.ii -mtune=generic -auxbase
ice-accessed-elt-2-of-tree_vec -version -o /tmp/ccEdsa3a.s
GNU C++ (GCC) version 4.4.0 20090413 (prerelease) (x86_64-unknown-linux-gnu)
        compiled by GNU C version 4.4.0 20090413 (prerelease), GMP version
4.2.2, MPFR version 2.3.1.
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
Compiler executable checksum: 4c95a5cf24794a394976148039ecc611
ice-accessed-elt-2-of-tree_vec.ii: In instantiation of ‘C<int>’:
ice-accessed-elt-2-of-tree_vec.ii:11:   instantiated from here
ice-accessed-elt-2-of-tree_vec.ii:9: error: ‘C<W>::a’ has incomplete type
ice-accessed-elt-2-of-tree_vec.ii:1: error: declaration of ‘struct A<int*>’
--------------------


-- 
           Summary: ICE: tree check: accessed elt 2 of tree_vec with 1 elts
                    in tsubst, at cp/pt.c:9248
           Product: gcc
           Version: 4.5.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: gcc at abeckmann dot de


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


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

* [Bug c++/39754] [4.5 Regression] ICE: tree check: accessed elt 2 of tree_vec with 1 elts in tsubst, at cp/pt.c:9248
  2009-04-13 19:32 [Bug c++/39754] New: ICE: tree check: accessed elt 2 of tree_vec with 1 elts in tsubst, at cp/pt.c:9248 gcc at abeckmann dot de
@ 2009-04-13 21:26 ` hjl dot tools at gmail dot com
  2009-04-14  6:59 ` dodji at gcc dot gnu dot org
                   ` (12 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: hjl dot tools at gmail dot com @ 2009-04-13 21:26 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from hjl dot tools at gmail dot com  2009-04-13 21:26 -------
It is caused by revision 145440:

http://gcc.gnu.org/ml/gcc-cvs/2009-04/msg00060.html


-- 

hjl dot tools at gmail dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |dseketel at redhat dot com
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2009-04-13 21:26:38
               date|                            |
            Summary|ICE: tree check: accessed   |[4.5 Regression] ICE: tree
                   |elt 2 of tree_vec with 1    |check: accessed elt 2 of
                   |elts in tsubst, at          |tree_vec with 1 elts in
                   |cp/pt.c:9248                |tsubst, at cp/pt.c:9248


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


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

* [Bug c++/39754] [4.5 Regression] ICE: tree check: accessed elt 2 of tree_vec with 1 elts in tsubst, at cp/pt.c:9248
  2009-04-13 19:32 [Bug c++/39754] New: ICE: tree check: accessed elt 2 of tree_vec with 1 elts in tsubst, at cp/pt.c:9248 gcc at abeckmann dot de
  2009-04-13 21:26 ` [Bug c++/39754] [4.5 Regression] " hjl dot tools at gmail dot com
@ 2009-04-14  6:59 ` dodji at gcc dot gnu dot org
  2009-04-14  7:04 ` gcc at abeckmann dot de
                   ` (11 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: dodji at gcc dot gnu dot org @ 2009-04-14  6:59 UTC (permalink / raw)
  To: gcc-bugs



-- 

dodji at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |dodji at gcc dot gnu dot org
                   |dot org                     |
             Status|NEW                         |ASSIGNED
   Last reconfirmed|2009-04-13 21:26:38         |2009-04-14 06:59:44
               date|                            |


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


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

* [Bug c++/39754] [4.5 Regression] ICE: tree check: accessed elt 2 of tree_vec with 1 elts in tsubst, at cp/pt.c:9248
  2009-04-13 19:32 [Bug c++/39754] New: ICE: tree check: accessed elt 2 of tree_vec with 1 elts in tsubst, at cp/pt.c:9248 gcc at abeckmann dot de
  2009-04-13 21:26 ` [Bug c++/39754] [4.5 Regression] " hjl dot tools at gmail dot com
  2009-04-14  6:59 ` dodji at gcc dot gnu dot org
@ 2009-04-14  7:04 ` gcc at abeckmann dot de
  2009-04-14 10:14 ` rguenth at gcc dot gnu dot org
                   ` (10 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: gcc at abeckmann dot de @ 2009-04-14  7:04 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from gcc at abeckmann dot de  2009-04-14 07:04 -------
An updated testcase that compiles without errors on 4.4.0:

========== 8< ==========
template < typename > struct A ;
template < typename T , typename = A < T > > struct B
{ } ;
template < class W , class > struct D
{
        typedef W X ;
        A < X * > a ;
} ;
template < class Y > struct E
{
        B < Y * > b ;
} ;
E < int > e ;
========== >8 ==========


-- 

gcc at abeckmann dot de changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Known to fail|                            |4.5.0
      Known to work|                            |4.4.0


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


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

* [Bug c++/39754] [4.5 Regression] ICE: tree check: accessed elt 2 of tree_vec with 1 elts in tsubst, at cp/pt.c:9248
  2009-04-13 19:32 [Bug c++/39754] New: ICE: tree check: accessed elt 2 of tree_vec with 1 elts in tsubst, at cp/pt.c:9248 gcc at abeckmann dot de
                   ` (2 preceding siblings ...)
  2009-04-14  7:04 ` gcc at abeckmann dot de
@ 2009-04-14 10:14 ` rguenth at gcc dot gnu dot org
  2009-04-14 14:07 ` jason at redhat dot com
                   ` (9 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2009-04-14 10:14 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from rguenth at gcc dot gnu dot org  2009-04-14 10:14 -------
I also see this.


-- 


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


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

* [Bug c++/39754] [4.5 Regression] ICE: tree check: accessed elt 2 of tree_vec with 1 elts in tsubst, at cp/pt.c:9248
  2009-04-13 19:32 [Bug c++/39754] New: ICE: tree check: accessed elt 2 of tree_vec with 1 elts in tsubst, at cp/pt.c:9248 gcc at abeckmann dot de
                   ` (3 preceding siblings ...)
  2009-04-14 10:14 ` rguenth at gcc dot gnu dot org
@ 2009-04-14 14:07 ` jason at redhat dot com
  2009-04-16 14:29 ` gcc at abeckmann dot de
                   ` (8 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: jason at redhat dot com @ 2009-04-14 14:07 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from jason at redhat dot com  2009-04-14 14:07 -------
Subject: Re:  [4.5 Regression] ICE: tree check: accessed elt
 2 of tree_vec with 1 elts in tsubst, at cp/pt.c:9248

I wonder if it only works on 4.4 because tree checking is disabled on 
release branches.

Jason


-- 


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


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

* [Bug c++/39754] [4.5 Regression] ICE: tree check: accessed elt 2 of tree_vec with 1 elts in tsubst, at cp/pt.c:9248
  2009-04-13 19:32 [Bug c++/39754] New: ICE: tree check: accessed elt 2 of tree_vec with 1 elts in tsubst, at cp/pt.c:9248 gcc at abeckmann dot de
                   ` (4 preceding siblings ...)
  2009-04-14 14:07 ` jason at redhat dot com
@ 2009-04-16 14:29 ` gcc at abeckmann dot de
  2009-04-21 14:41 ` dodji at gcc dot gnu dot org
                   ` (7 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: gcc at abeckmann dot de @ 2009-04-16 14:29 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #5 from gcc at abeckmann dot de  2009-04-16 14:28 -------
It does compile successfully using 4.4.0 built with --enable-checking. Is there
anyting else to enable these tree checks?

$ x86_64-linux-gnu-g++-4.4.x -v -c PR39754.min.ii && echo SUCCESS

Using built-in specs.
Target: x86_64-unknown-linux-gnu
Configured with: ../gcc-4_4-branch/configure
--prefix=/opt/software/gcc-x86_64/gcc-4.4.x --program-suffix=-4.4.x
--enable-languages=c,c++ --enable-checking
Thread model: posix
gcc version 4.4.0 20090413 (prerelease) (GCC)
COLLECT_GCC_OPTIONS='-v' '-c' '-shared-libgcc' '-mtune=generic'

/opt/software/gcc-x86_64/gcc-4.4.x/libexec/gcc/x86_64-unknown-linux-gnu/4.4.0/cc1plus
-fpreprocessed PR39754.min.ii -quiet -dumpbase PR39754.min.ii -mtune=generic
-auxbase PR39754.min -version -o /tmp/ccH60tOe.s
GNU C++ (GCC) version 4.4.0 20090413 (prerelease) (x86_64-unknown-linux-gnu)
        compiled by GNU C version 4.4.0 20090413 (prerelease), GMP version
4.2.2, MPFR version 2.3.1.
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
Compiler executable checksum: 4c95a5cf24794a394976148039ecc611
COLLECT_GCC_OPTIONS='-v' '-c' '-shared-libgcc' '-mtune=generic'
 as -V -Qy -o PR39754.min.o /tmp/ccH60tOe.s
GNU assembler version 2.19.1 (x86_64-linux-gnu) using BFD version (GNU Binutils
for Debian) 2.19.1
COMPILER_PATH=/opt/software/gcc-x86_64/gcc-4.4.x/libexec/gcc/x86_64-unknown-linux-gnu/4.4.0/:/opt/software/gcc-x86_64/gcc-4.4.x/libexec/gcc/x86_64-unknown-linux-gnu/4.4.0/:/opt/software/gcc-x86_64/gcc-4.4.x/libexec/gcc/x86_64-unknown-linux-gnu/:/opt/software/gcc-x86_64/gcc-4.4.x/lib/gcc/x86_64-unknown-linux-gnu/4.4.0/:/opt/software/gcc-x86_64/gcc-4.4.x/lib/gcc/x86_64-unknown-linux-gnu/
LIBRARY_PATH=/opt/software/gcc-x86_64/gcc-4.4.x/lib/gcc/x86_64-unknown-linux-gnu/4.4.0/:/opt/software/gcc-x86_64/gcc-4.4.x/lib/gcc/x86_64-unknown-linux-gnu/4.4.0/../../../../lib64/:/lib/../lib64/:/usr/lib/../lib64/:/opt/software/gcc-x86_64/gcc-4.4.x/lib/gcc/x86_64-unknown-linux-gnu/4.4.0/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-c' '-shared-libgcc' '-mtune=generic'
SUCCESS


-- 


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


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

* [Bug c++/39754] [4.5 Regression] ICE: tree check: accessed elt 2 of tree_vec with 1 elts in tsubst, at cp/pt.c:9248
  2009-04-13 19:32 [Bug c++/39754] New: ICE: tree check: accessed elt 2 of tree_vec with 1 elts in tsubst, at cp/pt.c:9248 gcc at abeckmann dot de
                   ` (5 preceding siblings ...)
  2009-04-16 14:29 ` gcc at abeckmann dot de
@ 2009-04-21 14:41 ` dodji at gcc dot gnu dot org
  2009-05-01 20:04 ` rguenth at gcc dot gnu dot org
                   ` (6 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: dodji at gcc dot gnu dot org @ 2009-04-21 14:41 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #6 from dodji at gcc dot gnu dot org  2009-04-21 14:40 -------
In this test case (the last one), the short description of the problem is that
we fail at getting canonical types of template arguments when said arguments
have composed types.

Let me give the longer description as well, so that I don't forget :)

1/  During the instantiation of E<int>, we try to instantiate the default
argument A<T> of the template B with T=int*.

2/ At that point, lookup_template_class selects the A<X*> specialization that
was first seen in struct D. There, X was a typedef of W, W being a template
parameter of struct D.

3/In the context of 1/, we try to tsubst  A<T> with T=int* - actually we try to
tsubst the A<X*> specialization of A<T>.  In tsubst, we then try to reuse the
typedef declaration of T, if T is a typedef.

A problem arises in 3/ because T is seen as a typedef of W (remember 2/) but W
doesn't have any meaning in the context of 1/, hence the crash.

Normally, template arguments are converted to their "canonical type variant"
before the stubst-ing process starts. The canonical type variant of a typedef
type variant is basically its qualified main type variant.
E.g. in typedef const int Foo, the canonical type variant of Foo is const int.
The function doing that conversion is canonical_type_variant.

The root cause of the problem is that canonical_type_variant doesn't give us
canonical variants of composed types.
E.g. in typedef int Foo; The canoniacl type variant of Foo* should be int*.
The current implementation of canonical_type_variant returns Foo* instead of
int* in that case.

So I am testing some patches that change the implementation of
canonical_type_variant atm.


-- 


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


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

* [Bug c++/39754] [4.5 Regression] ICE: tree check: accessed elt 2 of tree_vec with 1 elts in tsubst, at cp/pt.c:9248
  2009-04-13 19:32 [Bug c++/39754] New: ICE: tree check: accessed elt 2 of tree_vec with 1 elts in tsubst, at cp/pt.c:9248 gcc at abeckmann dot de
                   ` (6 preceding siblings ...)
  2009-04-21 14:41 ` dodji at gcc dot gnu dot org
@ 2009-05-01 20:04 ` rguenth at gcc dot gnu dot org
  2009-05-21 10:33 ` rguenth at gcc dot gnu dot org
                   ` (5 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2009-05-01 20:04 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #7 from rguenth at gcc dot gnu dot org  2009-05-01 20:03 -------
*** Bug 39980 has been marked as a duplicate of this bug. ***


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |sje at cup dot hp dot com


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


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

* [Bug c++/39754] [4.5 Regression] ICE: tree check: accessed elt 2 of tree_vec with 1 elts in tsubst, at cp/pt.c:9248
  2009-04-13 19:32 [Bug c++/39754] New: ICE: tree check: accessed elt 2 of tree_vec with 1 elts in tsubst, at cp/pt.c:9248 gcc at abeckmann dot de
                   ` (7 preceding siblings ...)
  2009-05-01 20:04 ` rguenth at gcc dot gnu dot org
@ 2009-05-21 10:33 ` rguenth at gcc dot gnu dot org
  2009-05-21 10:39 ` rguenth at gcc dot gnu dot org
                   ` (4 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2009-05-21 10:33 UTC (permalink / raw)
  To: gcc-bugs



-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |4.5.0


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


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

* [Bug c++/39754] [4.5 Regression] ICE: tree check: accessed elt 2 of tree_vec with 1 elts in tsubst, at cp/pt.c:9248
  2009-04-13 19:32 [Bug c++/39754] New: ICE: tree check: accessed elt 2 of tree_vec with 1 elts in tsubst, at cp/pt.c:9248 gcc at abeckmann dot de
                   ` (8 preceding siblings ...)
  2009-05-21 10:33 ` rguenth at gcc dot gnu dot org
@ 2009-05-21 10:39 ` rguenth at gcc dot gnu dot org
  2009-05-26 16:58 ` dodji at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2009-05-21 10:39 UTC (permalink / raw)
  To: gcc-bugs



-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |ice-on-valid-code
           Priority|P3                          |P1


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


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

* [Bug c++/39754] [4.5 Regression] ICE: tree check: accessed elt 2 of tree_vec with 1 elts in tsubst, at cp/pt.c:9248
  2009-04-13 19:32 [Bug c++/39754] New: ICE: tree check: accessed elt 2 of tree_vec with 1 elts in tsubst, at cp/pt.c:9248 gcc at abeckmann dot de
                   ` (9 preceding siblings ...)
  2009-05-21 10:39 ` rguenth at gcc dot gnu dot org
@ 2009-05-26 16:58 ` dodji at gcc dot gnu dot org
  2009-05-28 11:24 ` dodji at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: dodji at gcc dot gnu dot org @ 2009-05-26 16:58 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #8 from dodji at gcc dot gnu dot org  2009-05-26 16:58 -------
A patch was submitted at
http://gcc.gnu.org/ml/gcc-patches/2009-05/msg01655.html.


-- 


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


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

* [Bug c++/39754] [4.5 Regression] ICE: tree check: accessed elt 2 of tree_vec with 1 elts in tsubst, at cp/pt.c:9248
  2009-04-13 19:32 [Bug c++/39754] New: ICE: tree check: accessed elt 2 of tree_vec with 1 elts in tsubst, at cp/pt.c:9248 gcc at abeckmann dot de
                   ` (10 preceding siblings ...)
  2009-05-26 16:58 ` dodji at gcc dot gnu dot org
@ 2009-05-28 11:24 ` dodji at gcc dot gnu dot org
  2009-05-28 12:42 ` dodji at gcc dot gnu dot org
  2009-05-30 13:50 ` hjl at gcc dot gnu dot org
  13 siblings, 0 replies; 15+ messages in thread
From: dodji at gcc dot gnu dot org @ 2009-05-28 11:24 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #9 from dodji at gcc dot gnu dot org  2009-05-28 11:24 -------
Subject: Bug 39754

Author: dodji
Date: Thu May 28 11:24:18 2009
New Revision: 147951

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=147951
Log:
Fix for PR c++/PR39754

gcc/cp/ChangeLog:
    PR c++/39754
    * cp-tree.h (canonical_type_variant): Remove this function declaration.
    (strip_typedefs): New function declaration.
    * tree.c (strip_typedefs): New function definition.
    (canonical_type_variant): Remove function definition.
    * cvt.c (convert_from_reference): No need to use
    canonical_type_variant.
    * typeck.c (cp_build_indirect_ref): Likewise.
    * error.c (dump_template_bindings): Use strip_typedefs instead of
    canonical_type_variant.
    * pt.c (convert_template_argument, unify): Likewise.
    * mangle.c (canonicalize_for_substitution): Don't use
    canonical_type_variant.

gcc/testsuite/ChangeLog:
    PR c++/39754
    * g++.dg/template/canon-type-1.C: New test.
    * g++.dg/template/canon-type-2.C: Likewise.
    * g++.dg/template/canon-type-3.C: Likewise.
    * g++.dg/template/canon-type-4.C: Likewise.
    * g++.dg/template/canon-type-5.C: Likewise.
    * g++.dg/template/canon-type-6.C: Likewise.
    * g++.dg/template/canon-type-7.C: Likewise.


Added:
    trunk/gcc/testsuite/g++.dg/template/canon-type-1.C
    trunk/gcc/testsuite/g++.dg/template/canon-type-2.C
    trunk/gcc/testsuite/g++.dg/template/canon-type-3.C
    trunk/gcc/testsuite/g++.dg/template/canon-type-4.C
    trunk/gcc/testsuite/g++.dg/template/canon-type-5.C
    trunk/gcc/testsuite/g++.dg/template/canon-type-6.C
    trunk/gcc/testsuite/g++.dg/template/canon-type-7.C
Modified:
    trunk/gcc/cp/ChangeLog
    trunk/gcc/cp/cp-tree.h
    trunk/gcc/cp/cvt.c
    trunk/gcc/cp/error.c
    trunk/gcc/cp/mangle.c
    trunk/gcc/cp/pt.c
    trunk/gcc/cp/tree.c
    trunk/gcc/cp/typeck.c
    trunk/gcc/testsuite/ChangeLog


-- 


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


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

* [Bug c++/39754] [4.5 Regression] ICE: tree check: accessed elt 2 of tree_vec with 1 elts in tsubst, at cp/pt.c:9248
  2009-04-13 19:32 [Bug c++/39754] New: ICE: tree check: accessed elt 2 of tree_vec with 1 elts in tsubst, at cp/pt.c:9248 gcc at abeckmann dot de
                   ` (11 preceding siblings ...)
  2009-05-28 11:24 ` dodji at gcc dot gnu dot org
@ 2009-05-28 12:42 ` dodji at gcc dot gnu dot org
  2009-05-30 13:50 ` hjl at gcc dot gnu dot org
  13 siblings, 0 replies; 15+ messages in thread
From: dodji at gcc dot gnu dot org @ 2009-05-28 12:42 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #10 from dodji at gcc dot gnu dot org  2009-05-28 12:42 -------
Fixed in gcc 4.5.


-- 

dodji at gcc dot gnu dot org changed:

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


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


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

* [Bug c++/39754] [4.5 Regression] ICE: tree check: accessed elt 2 of tree_vec with 1 elts in tsubst, at cp/pt.c:9248
  2009-04-13 19:32 [Bug c++/39754] New: ICE: tree check: accessed elt 2 of tree_vec with 1 elts in tsubst, at cp/pt.c:9248 gcc at abeckmann dot de
                   ` (12 preceding siblings ...)
  2009-05-28 12:42 ` dodji at gcc dot gnu dot org
@ 2009-05-30 13:50 ` hjl at gcc dot gnu dot org
  13 siblings, 0 replies; 15+ messages in thread
From: hjl at gcc dot gnu dot org @ 2009-05-30 13:50 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #11 from hjl at gcc dot gnu dot org  2009-05-30 13:50 -------
Subject: Bug 39754

Author: hjl
Date: Sat May 30 13:49:33 2009
New Revision: 148004

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=148004
Log:
2009-05-30  H.J. Lu  <hongjiu.lu@intel.com>

        Backport from mainline:

        2009-05-28  Dodji Seketeli  <dodji@redhat.com>

        PR c++/39754
        * g++.dg/template/canon-type-1.C: New test.
        * g++.dg/template/canon-type-2.C: Likewise.
        * g++.dg/template/canon-type-3.C: Likewise.
        * g++.dg/template/canon-type-4.C: Likewise.
        * g++.dg/template/canon-type-5.C: Likewise.
        * g++.dg/template/canon-type-6.C: Likewise.
        * g++.dg/template/canon-type-7.C: Likewise.

        2009-05-28  Ira Rosen  <irar@il.ibm.com>

        PR tree-optimization/40254
        * gcc.dg/vect/pr40254.c: New test.

        2009-05-26  Richard Guenther  <rguenther@suse.de>

        PR middle-end/40252
        * gcc.c-torture/compile/pr40252.c: New testcase.

        2009-05-26  Dodji Seketeli  <dodji@redhat.com>

        PR c++/40007
        * g++.dg/template/typedef18.C: New test.
        * g++.dg/template/typedef19.C: Likewise.
        * g++.dg/template/typedef20.C: Likewise.

        2009-05-25  Ira Rosen  <irar@il.ibm.com>

        PR tree-optimization/40238
        * gcc.dg/vect/pr40238.c: New test.

        2009-05-24  Richard Guenther  <rguenther@suse.de>

        PR middle-end/40233
        * gcc.c-torture/compile/pr40233.c: New testcase.

Added:
    branches/gcc-4_4-branch/gcc/testsuite/g++.dg/template/canon-type-1.C
      - copied unchanged from r148002,
trunk/gcc/testsuite/g++.dg/template/canon-type-1.C
    branches/gcc-4_4-branch/gcc/testsuite/g++.dg/template/canon-type-2.C
      - copied unchanged from r148002,
trunk/gcc/testsuite/g++.dg/template/canon-type-2.C
    branches/gcc-4_4-branch/gcc/testsuite/g++.dg/template/canon-type-3.C
      - copied unchanged from r148002,
trunk/gcc/testsuite/g++.dg/template/canon-type-3.C
    branches/gcc-4_4-branch/gcc/testsuite/g++.dg/template/canon-type-4.C
      - copied unchanged from r148002,
trunk/gcc/testsuite/g++.dg/template/canon-type-4.C
    branches/gcc-4_4-branch/gcc/testsuite/g++.dg/template/canon-type-5.C
      - copied unchanged from r148002,
trunk/gcc/testsuite/g++.dg/template/canon-type-5.C
    branches/gcc-4_4-branch/gcc/testsuite/g++.dg/template/canon-type-6.C
      - copied unchanged from r148002,
trunk/gcc/testsuite/g++.dg/template/canon-type-6.C
    branches/gcc-4_4-branch/gcc/testsuite/g++.dg/template/canon-type-7.C
      - copied unchanged from r148002,
trunk/gcc/testsuite/g++.dg/template/canon-type-7.C
    branches/gcc-4_4-branch/gcc/testsuite/g++.dg/template/typedef18.C
      - copied unchanged from r148003,
trunk/gcc/testsuite/g++.dg/template/typedef18.C
    branches/gcc-4_4-branch/gcc/testsuite/g++.dg/template/typedef19.C
      - copied unchanged from r148003,
trunk/gcc/testsuite/g++.dg/template/typedef19.C
    branches/gcc-4_4-branch/gcc/testsuite/g++.dg/template/typedef20.C
      - copied unchanged from r148003,
trunk/gcc/testsuite/g++.dg/template/typedef20.C
    branches/gcc-4_4-branch/gcc/testsuite/gcc.c-torture/compile/pr40233.c
      - copied unchanged from r148003,
trunk/gcc/testsuite/gcc.c-torture/compile/pr40233.c
    branches/gcc-4_4-branch/gcc/testsuite/gcc.c-torture/compile/pr40252.c
      - copied unchanged from r148003,
trunk/gcc/testsuite/gcc.c-torture/compile/pr40252.c
    branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/vect/pr40238.c
      - copied unchanged from r148003,
trunk/gcc/testsuite/gcc.dg/vect/pr40238.c
    branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/vect/pr40254.c
      - copied unchanged from r148003,
trunk/gcc/testsuite/gcc.dg/vect/pr40254.c
Modified:
    branches/gcc-4_4-branch/gcc/testsuite/ChangeLog


-- 


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


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

end of thread, other threads:[~2009-05-30 13:50 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-04-13 19:32 [Bug c++/39754] New: ICE: tree check: accessed elt 2 of tree_vec with 1 elts in tsubst, at cp/pt.c:9248 gcc at abeckmann dot de
2009-04-13 21:26 ` [Bug c++/39754] [4.5 Regression] " hjl dot tools at gmail dot com
2009-04-14  6:59 ` dodji at gcc dot gnu dot org
2009-04-14  7:04 ` gcc at abeckmann dot de
2009-04-14 10:14 ` rguenth at gcc dot gnu dot org
2009-04-14 14:07 ` jason at redhat dot com
2009-04-16 14:29 ` gcc at abeckmann dot de
2009-04-21 14:41 ` dodji at gcc dot gnu dot org
2009-05-01 20:04 ` rguenth at gcc dot gnu dot org
2009-05-21 10:33 ` rguenth at gcc dot gnu dot org
2009-05-21 10:39 ` rguenth at gcc dot gnu dot org
2009-05-26 16:58 ` dodji at gcc dot gnu dot org
2009-05-28 11:24 ` dodji at gcc dot gnu dot org
2009-05-28 12:42 ` dodji at gcc dot gnu dot org
2009-05-30 13:50 ` hjl 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).