public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/33964]  New: internal compiler error: in dependent_type_p, at cp/pt.c:15319 (vararg templates)
@ 2007-10-31 20:24 eric dot niebler at gmail dot com
  2007-11-19  4:44 ` [Bug c++/33964] [4.3 Regression] " pinskia at gcc dot gnu dot org
                   ` (7 more replies)
  0 siblings, 8 replies; 9+ messages in thread
From: eric dot niebler at gmail dot com @ 2007-10-31 20:24 UTC (permalink / raw)
  To: gcc-bugs

I'm not sure if the following should compile or not, but it certainly should
ICE the compiler. Latest gcc from SVN with vararg template patches from Doug
Gregor. Build with -std=c++0x.

Doug, no rush on this one. Just logging it for posterity.

template<typename ... Args>
struct foo
{
    static bool const value = true;
};

template<typename ... Args>
struct foo< typename Args::is_applied... >
{
    static bool const value = false;
};

struct not_applied { typedef void is_applied; };
struct applied { typedef applied is_applied; };

int main()
{
    foo<applied, applied> i;
}


-- 
           Summary: internal compiler error: in dependent_type_p, at
                    cp/pt.c:15319 (vararg templates)
           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=33964


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

* [Bug c++/33964] [4.3 Regression] internal compiler error: in dependent_type_p, at cp/pt.c:15319 (vararg templates)
  2007-10-31 20:24 [Bug c++/33964] New: internal compiler error: in dependent_type_p, at cp/pt.c:15319 (vararg templates) eric dot niebler at gmail dot com
@ 2007-11-19  4:44 ` pinskia at gcc dot gnu dot org
  2007-11-27  5:54 ` mmitchel at gcc dot gnu dot org
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2007-11-19  4:44 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from pinskia at gcc dot gnu dot org  2007-11-19 04:44 -------
Confirmed, the ICE is an error recovery regression.


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
           Keywords|                            |error-recovery, ice-on-
                   |                            |invalid-code
   Last reconfirmed|0000-00-00 00:00:00         |2007-11-19 04:44:27
               date|                            |
            Summary|internal compiler error: in |[4.3 Regression] internal
                   |dependent_type_p, at        |compiler error: in
                   |cp/pt.c:15319 (vararg       |dependent_type_p, at
                   |templates)                  |cp/pt.c:15319 (vararg
                   |                            |templates)
   Target Milestone|---                         |4.3.0


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


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

* [Bug c++/33964] [4.3 Regression] internal compiler error: in dependent_type_p, at cp/pt.c:15319 (vararg templates)
  2007-10-31 20:24 [Bug c++/33964] New: internal compiler error: in dependent_type_p, at cp/pt.c:15319 (vararg templates) eric dot niebler at gmail dot com
  2007-11-19  4:44 ` [Bug c++/33964] [4.3 Regression] " pinskia at gcc dot gnu dot org
@ 2007-11-27  5:54 ` mmitchel at gcc dot gnu dot org
  2007-12-02 21:03 ` pinskia at gcc dot gnu dot org
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: mmitchel at gcc dot gnu dot org @ 2007-11-27  5:54 UTC (permalink / raw)
  To: gcc-bugs



-- 

mmitchel at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P2


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


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

* [Bug c++/33964] [4.3 Regression] internal compiler error: in dependent_type_p, at cp/pt.c:15319 (vararg templates)
  2007-10-31 20:24 [Bug c++/33964] New: internal compiler error: in dependent_type_p, at cp/pt.c:15319 (vararg templates) eric dot niebler at gmail dot com
  2007-11-19  4:44 ` [Bug c++/33964] [4.3 Regression] " pinskia at gcc dot gnu dot org
  2007-11-27  5:54 ` mmitchel at gcc dot gnu dot org
@ 2007-12-02 21:03 ` pinskia at gcc dot gnu dot org
  2008-01-09  1:12 ` pcarlini at suse dot de
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2007-12-02 21:03 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from pinskia at gcc dot gnu dot org  2007-12-02 21:03 -------
 Mark, this is really only an error recovery regression. Can you relook at the
current priority?

Thanks,
Andrew Pinski


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |mmitchel at gcc dot gnu dot
                   |                            |org


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


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

* [Bug c++/33964] [4.3 Regression] internal compiler error: in dependent_type_p, at cp/pt.c:15319 (vararg templates)
  2007-10-31 20:24 [Bug c++/33964] New: internal compiler error: in dependent_type_p, at cp/pt.c:15319 (vararg templates) eric dot niebler at gmail dot com
                   ` (2 preceding siblings ...)
  2007-12-02 21:03 ` pinskia at gcc dot gnu dot org
@ 2008-01-09  1:12 ` pcarlini at suse dot de
  2008-01-11 14:45 ` dgregor at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: pcarlini at suse dot de @ 2008-01-09  1:12 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from pcarlini at suse dot de  2008-01-09 00:05 -------
Doug, can you confirm the code is legal? Because the ICE disappeared and now
just compiles...


-- 

pcarlini at suse dot de changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |pcarlini at suse dot de


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


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

* [Bug c++/33964] [4.3 Regression] internal compiler error: in dependent_type_p, at cp/pt.c:15319 (vararg templates)
  2007-10-31 20:24 [Bug c++/33964] New: internal compiler error: in dependent_type_p, at cp/pt.c:15319 (vararg templates) eric dot niebler at gmail dot com
                   ` (3 preceding siblings ...)
  2008-01-09  1:12 ` pcarlini at suse dot de
@ 2008-01-11 14:45 ` dgregor at gcc dot gnu dot org
  2008-01-12 19:24 ` andreasmeier80 at gmx dot de
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: dgregor at gcc dot gnu dot org @ 2008-01-11 14:45 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from dgregor at gcc dot gnu dot org  2008-01-11 14:11 -------
This code is ill-formed, and should be rejected because "Args" cannot be
deduced from "typename Args::is_applied". Interestingly enough, this problem
actually has nothing to do with variadic templates: take away the parameter
pack and we still accept this ill-formed code:

  template<typename T>
  struct ugh {};

  template<typename T> struct ugh<typename T::is_applied> { };

The problem is that, when we're marking template parameters in
process_partial_specialization via for_each_template_parm, we mark *all*
template parameters, not just those that are in deduced contexts. 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|NEW                         |ASSIGNED
           Keywords|ice-on-invalid-code         |accepts-invalid
   Last reconfirmed|2007-11-19 04:44:27         |2008-01-11 14:11:27
               date|                            |


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


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

* [Bug c++/33964] [4.3 Regression] internal compiler error: in dependent_type_p, at cp/pt.c:15319 (vararg templates)
  2007-10-31 20:24 [Bug c++/33964] New: internal compiler error: in dependent_type_p, at cp/pt.c:15319 (vararg templates) eric dot niebler at gmail dot com
                   ` (4 preceding siblings ...)
  2008-01-11 14:45 ` dgregor at gcc dot gnu dot org
@ 2008-01-12 19:24 ` andreasmeier80 at gmx dot de
  2008-01-15 16:35 ` dgregor at gcc dot gnu dot org
  2008-01-15 16:36 ` dgregor at gcc dot gnu dot org
  7 siblings, 0 replies; 9+ messages in thread
From: andreasmeier80 at gmx dot de @ 2008-01-12 19:24 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #5 from andreasmeier80 at gmx dot de  2008-01-12 19:06 -------
Patch at http://gcc.gnu.org/ml/gcc-patches/2008-01/msg00482.html


-- 


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


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

* [Bug c++/33964] [4.3 Regression] internal compiler error: in dependent_type_p, at cp/pt.c:15319 (vararg templates)
  2007-10-31 20:24 [Bug c++/33964] New: internal compiler error: in dependent_type_p, at cp/pt.c:15319 (vararg templates) eric dot niebler at gmail dot com
                   ` (5 preceding siblings ...)
  2008-01-12 19:24 ` andreasmeier80 at gmx dot de
@ 2008-01-15 16:35 ` dgregor at gcc dot gnu dot org
  2008-01-15 16:36 ` dgregor at gcc dot gnu dot org
  7 siblings, 0 replies; 9+ messages in thread
From: dgregor at gcc dot gnu dot org @ 2008-01-15 16:35 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #6 from dgregor at gcc dot gnu dot org  2008-01-15 16:09 -------
Fixed on mainline


-- 

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=33964


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

* [Bug c++/33964] [4.3 Regression] internal compiler error: in dependent_type_p, at cp/pt.c:15319 (vararg templates)
  2007-10-31 20:24 [Bug c++/33964] New: internal compiler error: in dependent_type_p, at cp/pt.c:15319 (vararg templates) eric dot niebler at gmail dot com
                   ` (6 preceding siblings ...)
  2008-01-15 16:35 ` dgregor at gcc dot gnu dot org
@ 2008-01-15 16:36 ` dgregor at gcc dot gnu dot org
  7 siblings, 0 replies; 9+ messages in thread
From: dgregor at gcc dot gnu dot org @ 2008-01-15 16:36 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #7 from dgregor at gcc dot gnu dot org  2008-01-15 16:10 -------
Subject: Bug 33964

Author: dgregor
Date: Tue Jan 15 16:09:28 2008
New Revision: 131544

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=131544
Log:
2008-01-15  Douglas Gregor  <doug.gregor@gmail.com>

       PR c++/33964
       * pt.c (process_partial_specialization): Don't mark template
       parameters that occur in non-deduced contexts.
       (struct pair_fn_data): Add include_nondeduced_p.
       (for_each_template_parm_r): Only visit non-deduced contexts if
       include_nondeduced_p is set.
       (for_each_template_parm): Added parameter include_nondeduced_p,
       which states whether template parameters found in non-deduced
       contexts should be visited.
       (uses_template_parms): Visit all template parameters, even those
       in non-deduced contexts.

2008-01-15  Douglas Gregor  <doug.gregor@gmail.com>

       PR c++/33964
       * g++.dg/cpp0x/vt-33964.C: New.
       * g++.dg/template/partial5.C: New.

Added:
    trunk/gcc/testsuite/g++.dg/cpp0x/vt-33964.C
    trunk/gcc/testsuite/g++.dg/template/partial5.C
Modified:
    trunk/gcc/cp/ChangeLog
    trunk/gcc/cp/pt.c
    trunk/gcc/testsuite/ChangeLog


-- 


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


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

end of thread, other threads:[~2008-01-15 16:10 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-10-31 20:24 [Bug c++/33964] New: internal compiler error: in dependent_type_p, at cp/pt.c:15319 (vararg templates) eric dot niebler at gmail dot com
2007-11-19  4:44 ` [Bug c++/33964] [4.3 Regression] " pinskia at gcc dot gnu dot org
2007-11-27  5:54 ` mmitchel at gcc dot gnu dot org
2007-12-02 21:03 ` pinskia at gcc dot gnu dot org
2008-01-09  1:12 ` pcarlini at suse dot de
2008-01-11 14:45 ` dgregor at gcc dot gnu dot org
2008-01-12 19:24 ` andreasmeier80 at gmx dot de
2008-01-15 16:35 ` dgregor at gcc dot gnu dot org
2008-01-15 16:36 ` dgregor 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).