public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/33955] New: internal compiler error: in dependent_type_p, at cp/pt.c:15245 (vararg template problem)
@ 2007-10-31 5:55 eric dot niebler at gmail dot com
2007-10-31 5:56 ` [Bug c++/33955] " eric dot niebler at gmail dot com
` (5 more replies)
0 siblings, 6 replies; 7+ messages in thread
From: eric dot niebler at gmail dot com @ 2007-10-31 5:55 UTC (permalink / raw)
To: gcc-bugs
Compile the attached preprocessed file with "g++ -std=c++0x -c -x c++ bug.i".
The compiler ICEs. Seems to be a problem with template varargs.
This is with the latest g++, built from svn on 10/30/2007, with some patches
from Doug Gregor for various problems.
--
Summary: internal compiler error: in dependent_type_p, at
cp/pt.c:15245 (vararg template problem)
Product: gcc
Version: 4.3.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: eric dot niebler at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33955
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug c++/33955] internal compiler error: in dependent_type_p, at cp/pt.c:15245 (vararg template problem)
2007-10-31 5:55 [Bug c++/33955] New: internal compiler error: in dependent_type_p, at cp/pt.c:15245 (vararg template problem) eric dot niebler at gmail dot com
@ 2007-10-31 5:56 ` eric dot niebler at gmail dot com
2007-10-31 12:10 ` dgregor at gcc dot gnu dot org
` (4 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: eric dot niebler at gmail dot com @ 2007-10-31 5:56 UTC (permalink / raw)
To: gcc-bugs
------- Comment #1 from eric dot niebler at gmail dot com 2007-10-31 05:56 -------
Created an attachment (id=14446)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14446&action=view)
preprocessed source code
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33955
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug c++/33955] internal compiler error: in dependent_type_p, at cp/pt.c:15245 (vararg template problem)
2007-10-31 5:55 [Bug c++/33955] New: internal compiler error: in dependent_type_p, at cp/pt.c:15245 (vararg template problem) eric dot niebler at gmail dot com
2007-10-31 5:56 ` [Bug c++/33955] " eric dot niebler at gmail dot com
@ 2007-10-31 12:10 ` dgregor at gcc dot gnu dot org
2007-10-31 12:23 ` dgregor at gcc dot gnu dot org
` (3 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: dgregor at gcc dot gnu dot org @ 2007-10-31 12:10 UTC (permalink / raw)
To: gcc-bugs
------- Comment #2 from dgregor at gcc dot gnu dot org 2007-10-31 12:09 -------
I can duplicate this locally. Here's a smaller test case:
template<typename T>
struct uncvref
{
typedef T type;
};
template<typename... Args>
struct args
{
static const int size = sizeof...(Args);
};
template<typename G, typename E, typename S, typename V, long GN = G::size,
long EN = E::size>
struct apply_args;
template<typename... G, typename... E, typename S, typename V, long N>
struct apply_args<args<G...>, args<E...>, S, V, N, N>
{
typedef args<
typename G::template apply<typename uncvref<E>::type, S, V>::type...
> type;
};
struct or_
{
template<typename E, typename S, typename V>
struct apply {
typedef typename E::type type;
};
};
template<typename T>
struct identity
{
typedef T type;
};
apply_args<args<or_>, args<identity<int>>, float, double> a1;
I'm working on a fix now.
--
dgregor at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
AssignedTo|unassigned at gcc dot gnu |dgregor at gcc dot gnu dot
|dot org |org
Status|UNCONFIRMED |ASSIGNED
Ever Confirmed|0 |1
Last reconfirmed|0000-00-00 00:00:00 |2007-10-31 12:09:52
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33955
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug c++/33955] internal compiler error: in dependent_type_p, at cp/pt.c:15245 (vararg template problem)
2007-10-31 5:55 [Bug c++/33955] New: internal compiler error: in dependent_type_p, at cp/pt.c:15245 (vararg template problem) eric dot niebler at gmail dot com
2007-10-31 5:56 ` [Bug c++/33955] " eric dot niebler at gmail dot com
2007-10-31 12:10 ` dgregor at gcc dot gnu dot org
@ 2007-10-31 12:23 ` dgregor at gcc dot gnu dot org
2007-11-02 3:27 ` dgregor at gcc dot gnu dot org
` (2 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: dgregor at gcc dot gnu dot org @ 2007-10-31 12:23 UTC (permalink / raw)
To: gcc-bugs
------- Comment #3 from dgregor at gcc dot gnu dot org 2007-10-31 12:23 -------
This tiny patch should fix the problem. We weren't digging into TYPENAME_TYPEs
deep enough to find all of the parameter packs. The patch fixes both the
original test case and the reduced one. However, I can't test it in isolation
at the moment.
Index: pt.c
===================================================================
--- pt.c (revision 129773)
+++ pt.c (working copy)
@@ -2505,6 +2505,12 @@ find_parameter_packs_r (tree *tp, int *w
*walk_subtrees = 0;
return NULL_TREE;
+ case TYPENAME_TYPE:
+ cp_walk_tree (&TYPENAME_TYPE_FULLNAME (t), &find_parameter_packs_r,
+ ppd, ppd->visited);
+ *walk_subtrees = 0;
+ return NULL_TREE;
+
case TYPE_PACK_EXPANSION:
case EXPR_PACK_EXPANSION:
*walk_subtrees = 0;
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33955
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug c++/33955] internal compiler error: in dependent_type_p, at cp/pt.c:15245 (vararg template problem)
2007-10-31 5:55 [Bug c++/33955] New: internal compiler error: in dependent_type_p, at cp/pt.c:15245 (vararg template problem) eric dot niebler at gmail dot com
` (2 preceding siblings ...)
2007-10-31 12:23 ` dgregor at gcc dot gnu dot org
@ 2007-11-02 3:27 ` dgregor at gcc dot gnu dot org
2007-11-02 3:31 ` dgregor at gcc dot gnu dot org
2007-11-19 4:49 ` pinskia at gcc dot gnu dot org
5 siblings, 0 replies; 7+ messages in thread
From: dgregor at gcc dot gnu dot org @ 2007-11-02 3:27 UTC (permalink / raw)
To: gcc-bugs
------- Comment #4 from dgregor at gcc dot gnu dot org 2007-11-02 03:26 -------
Subject: Bug 33955
Author: dgregor
Date: Fri Nov 2 03:26:46 2007
New Revision: 129843
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=129843
Log:
2007-11-01 Douglas Gregor <doug.gregor@gmail.com>
PR c++/33955
* pt.c (find_parameter_packs_r): Handle TYPENAME_TYPE.
2007-11-01 Douglas Gregor <doug.gregor@gmail.com>
* g++.dg/cpp0x/pr33955.C: New.
Added:
trunk/gcc/testsuite/g++.dg/cpp0x/pr33955.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/pt.c
trunk/gcc/testsuite/ChangeLog
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33955
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug c++/33955] internal compiler error: in dependent_type_p, at cp/pt.c:15245 (vararg template problem)
2007-10-31 5:55 [Bug c++/33955] New: internal compiler error: in dependent_type_p, at cp/pt.c:15245 (vararg template problem) eric dot niebler at gmail dot com
` (3 preceding siblings ...)
2007-11-02 3:27 ` dgregor at gcc dot gnu dot org
@ 2007-11-02 3:31 ` dgregor at gcc dot gnu dot org
2007-11-19 4:49 ` pinskia at gcc dot gnu dot org
5 siblings, 0 replies; 7+ messages in thread
From: dgregor at gcc dot gnu dot org @ 2007-11-02 3:31 UTC (permalink / raw)
To: gcc-bugs
------- Comment #5 from dgregor at gcc dot gnu dot org 2007-11-02 03:30 -------
Fixed.
--
dgregor at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution| |FIXED
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33955
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug c++/33955] internal compiler error: in dependent_type_p, at cp/pt.c:15245 (vararg template problem)
2007-10-31 5:55 [Bug c++/33955] New: internal compiler error: in dependent_type_p, at cp/pt.c:15245 (vararg template problem) eric dot niebler at gmail dot com
` (4 preceding siblings ...)
2007-11-02 3:31 ` dgregor at gcc dot gnu dot org
@ 2007-11-19 4:49 ` pinskia at gcc dot gnu dot org
5 siblings, 0 replies; 7+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2007-11-19 4:49 UTC (permalink / raw)
To: gcc-bugs
--
pinskia at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|--- |4.3.0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33955
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2007-11-19 4:49 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-10-31 5:55 [Bug c++/33955] New: internal compiler error: in dependent_type_p, at cp/pt.c:15245 (vararg template problem) eric dot niebler at gmail dot com
2007-10-31 5:56 ` [Bug c++/33955] " eric dot niebler at gmail dot com
2007-10-31 12:10 ` dgregor at gcc dot gnu dot org
2007-10-31 12:23 ` dgregor at gcc dot gnu dot org
2007-11-02 3:27 ` dgregor at gcc dot gnu dot org
2007-11-02 3:31 ` dgregor at gcc dot gnu dot org
2007-11-19 4:49 ` pinskia 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).