public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/34056] [4.3 regression] ICE with parameter pack and pointer
  2007-11-10 19:57 [Bug c++/34056] New: [4.3 regression] ICE with parameter pack and pointer reichelt at gcc dot gnu dot org
@ 2007-11-10 19:57 ` reichelt at gcc dot gnu dot org
  2007-11-13 12:12 ` jakub at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: reichelt at gcc dot gnu dot org @ 2007-11-10 19:57 UTC (permalink / raw)
  To: gcc-bugs



-- 

reichelt at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |4.3.0


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


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

* [Bug c++/34056]  New: [4.3 regression] ICE with parameter pack and pointer
@ 2007-11-10 19:57 reichelt at gcc dot gnu dot org
  2007-11-10 19:57 ` [Bug c++/34056] " reichelt at gcc dot gnu dot org
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: reichelt at gcc dot gnu dot org @ 2007-11-10 19:57 UTC (permalink / raw)
  To: gcc-bugs

The following invalid code snippet triggers an ICE on mainline:

=====================================================================
template<typename... T> struct A
{
  void foo(T*) { ++p; }
  T* p;
};
=====================================================================

bug.cc:3: error: parameter packs not expanded with `...':
bug.cc:3: note:         'T'
bug.cc: In member function 'void A<T>::foo(<type error>)':
bug.cc:3: internal compiler error: tree check: expected class 'type', have
'exceptional' (error_mark) in build_unary_op, at cp/typeck.c:4296
Please submit a full bug report, [etc.]

The testcase didn't crash before 2007-11-03, so it's probably fallout from
http://gcc.gnu.org/ml/gcc-cvs/2007-11/msg00120.html


-- 
           Summary: [4.3 regression] ICE with parameter pack and pointer
           Product: gcc
           Version: 4.3.0
            Status: UNCONFIRMED
          Keywords: ice-on-invalid-code, error-recovery, monitored
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: reichelt at gcc dot gnu dot org


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


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

* [Bug c++/34056] [4.3 regression] ICE with parameter pack and pointer
  2007-11-10 19:57 [Bug c++/34056] New: [4.3 regression] ICE with parameter pack and pointer reichelt at gcc dot gnu dot org
  2007-11-10 19:57 ` [Bug c++/34056] " reichelt at gcc dot gnu dot org
@ 2007-11-13 12:12 ` jakub at gcc dot gnu dot org
  2007-11-13 13:44 ` jakub at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: jakub at gcc dot gnu dot org @ 2007-11-13 12:12 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from jakub at gcc dot gnu dot org  2007-11-13 12:12 -------
The set_packs_to_error stuff is very problematic in this case, because
trees are shared and the C++ FE certainly doesn't expect error_mark_nodes
to appear at random places.
In this case T* type is shared (as the pointer to T has been cached).
check_for_bare_parameter_packs should have errored about this twice, but will
do only once because of the sharing and in the second case just won't fail,
so doesn't let the caller to deal with the errorneous type.


-- 


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


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

* [Bug c++/34056] [4.3 regression] ICE with parameter pack and pointer
  2007-11-10 19:57 [Bug c++/34056] New: [4.3 regression] ICE with parameter pack and pointer reichelt at gcc dot gnu dot org
  2007-11-10 19:57 ` [Bug c++/34056] " reichelt at gcc dot gnu dot org
  2007-11-13 12:12 ` jakub at gcc dot gnu dot org
@ 2007-11-13 13:44 ` jakub at gcc dot gnu dot org
  2007-11-13 18:28 ` jakub at gcc dot gnu dot org
  2007-11-13 18:28 ` jakub at gcc dot gnu dot org
  4 siblings, 0 replies; 6+ messages in thread
From: jakub at gcc dot gnu dot org @ 2007-11-13 13:44 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from jakub at gcc dot gnu dot org  2007-11-13 13:43 -------
Testing a fix.


-- 

jakub at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |jakub at gcc dot gnu dot org
                   |dot org                     |
             Status|UNCONFIRMED                 |ASSIGNED
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2007-11-13 13:43:49
               date|                            |


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


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

* [Bug c++/34056] [4.3 regression] ICE with parameter pack and pointer
  2007-11-10 19:57 [Bug c++/34056] New: [4.3 regression] ICE with parameter pack and pointer reichelt at gcc dot gnu dot org
                   ` (2 preceding siblings ...)
  2007-11-13 13:44 ` jakub at gcc dot gnu dot org
@ 2007-11-13 18:28 ` jakub at gcc dot gnu dot org
  2007-11-13 18:28 ` jakub at gcc dot gnu dot org
  4 siblings, 0 replies; 6+ messages in thread
From: jakub at gcc dot gnu dot org @ 2007-11-13 18:28 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from jakub at gcc dot gnu dot org  2007-11-13 18:28 -------
Fixed.


-- 

jakub at gcc dot gnu dot org changed:

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


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


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

* [Bug c++/34056] [4.3 regression] ICE with parameter pack and pointer
  2007-11-10 19:57 [Bug c++/34056] New: [4.3 regression] ICE with parameter pack and pointer reichelt at gcc dot gnu dot org
                   ` (3 preceding siblings ...)
  2007-11-13 18:28 ` jakub at gcc dot gnu dot org
@ 2007-11-13 18:28 ` jakub at gcc dot gnu dot org
  4 siblings, 0 replies; 6+ messages in thread
From: jakub at gcc dot gnu dot org @ 2007-11-13 18:28 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from jakub at gcc dot gnu dot org  2007-11-13 18:27 -------
Subject: Bug 34056

Author: jakub
Date: Tue Nov 13 18:27:09 2007
New Revision: 130152

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=130152
Log:
        PR c++/34054
        PR c++/34056
        PR c++/34057
        PR c++/34058
        PR c++/34060
        * pt.c (find_parameter_packs_r): If ppd->set_packs_to_error,
        set to error_mark_node the outermost POINTER_TYPE to the pack if
        it is seen in a POINTER_TYPE.
        (push_template_decl_real): If check_for_bare_parameter_packs
        fails for function return type, set the return type to
        integer_type_node.  If check_for_bare_parameter_packs failed
        for non-function, return error_mark_node.

        * g++.dg/parse/crash36.C: Add another dg-error.
        * g++.dg/cpp0x/pr34054.C: New test.
        * g++.dg/cpp0x/pr34056.C: New test.
        * g++.dg/cpp0x/pr34057.C: New test.
        * g++.dg/cpp0x/pr34058.C: New test.
        * g++.dg/cpp0x/pr34060.C: New test.

Added:
    trunk/gcc/testsuite/g++.dg/cpp0x/pr34054.C
    trunk/gcc/testsuite/g++.dg/cpp0x/pr34056.C
    trunk/gcc/testsuite/g++.dg/cpp0x/pr34057.C
    trunk/gcc/testsuite/g++.dg/cpp0x/pr34058.C
    trunk/gcc/testsuite/g++.dg/cpp0x/pr34060.C
Modified:
    trunk/gcc/cp/ChangeLog
    trunk/gcc/cp/pt.c
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/g++.dg/parse/crash36.C


-- 


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


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

end of thread, other threads:[~2007-11-13 18:28 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-11-10 19:57 [Bug c++/34056] New: [4.3 regression] ICE with parameter pack and pointer reichelt at gcc dot gnu dot org
2007-11-10 19:57 ` [Bug c++/34056] " reichelt at gcc dot gnu dot org
2007-11-13 12:12 ` jakub at gcc dot gnu dot org
2007-11-13 13:44 ` jakub at gcc dot gnu dot org
2007-11-13 18:28 ` jakub at gcc dot gnu dot org
2007-11-13 18:28 ` jakub 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).