public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [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 ` 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] [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).