public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/24680]  New: [accept invalid] Invalid template code accepted
@ 2005-11-05  0:44 ppluzhnikov at charter dot net
  2005-11-05  0:55 ` [Bug c++/24680] " pinskia at gcc dot gnu dot org
                   ` (16 more replies)
  0 siblings, 17 replies; 18+ messages in thread
From: ppluzhnikov at charter dot net @ 2005-11-05  0:44 UTC (permalink / raw)
  To: gcc-bugs

$ cat junk.cc
template <typename T>
struct List
{
    struct D { int size; };
    D *d;

    List &fill(const T &t, int size = -1);
};

template <typename T>
List<T> &List<T>::fill(const T &t, int size)
{
    resize(size ? 1 : d->size);
    return *this;
}

$ /usr/local/gcc-4.1-20051001/bin/g++ -c junk.cc
# silently accepted

Replacing "resize(size...);" with "resize(1);" correctly rejects the bogus
source (g++ versions 3.4 and above):

junk.cc: In member function 'List<T>& List<T>::fill(const T&, int)':
junk.cc:13: error: there are no arguments to 'resize' that depend on a template
parameter, so a declaration of 'resize' must be available
junk.cc:13: error: (if you use '-fpermissive', G++ will accept your code, but
allowing the use of an undeclared name is deprecated)


-- 
           Summary: [accept invalid] Invalid template code accepted
           Product: gcc
           Version: 4.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: ppluzhnikov at charter dot net
 GCC build triplet: x86_64-redhat-linux
  GCC host triplet: x86_64-redhat-linux
GCC target triplet: x86_64-redhat-linux


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


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

* [Bug c++/24680] Invalid template code accepted
  2005-11-05  0:44 [Bug c++/24680] New: [accept invalid] Invalid template code accepted ppluzhnikov at charter dot net
@ 2005-11-05  0:55 ` pinskia at gcc dot gnu dot org
  2005-11-05  1:14 ` rnewman at compubrite dot com
                   ` (15 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-11-05  0:55 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from pinskia at gcc dot gnu dot org  2005-11-05 00:55 -------
Hmm, GCC seems to think "size ? 1 : d->size" is type-dependent in a way it is
as D is type dependent.  Someone else with more knowlege of the C++ standard
will have to comment.
Another testcase which shows the same issue
template <typename T>
struct List
{
    struct D { int size; };
    D *d;

    List &fill(const T &t, int size = -1);
};

template <typename T>
List<T> &List<T>::fill(const T &t, int size)
{
    resize(d->size);
    return *this;
}


-----------------------
Comeau says this is invalid code but I don't know really.


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  GCC build triplet|x86_64-redhat-linux         |
   GCC host triplet|x86_64-redhat-linux         |
 GCC target triplet|x86_64-redhat-linux         |
           Keywords|                            |accepts-invalid
            Summary|[accept invalid] Invalid    |Invalid template code
                   |template code accepted      |accepted


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


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

* [Bug c++/24680] Invalid template code accepted
  2005-11-05  0:44 [Bug c++/24680] New: [accept invalid] Invalid template code accepted ppluzhnikov at charter dot net
  2005-11-05  0:55 ` [Bug c++/24680] " pinskia at gcc dot gnu dot org
@ 2005-11-05  1:14 ` rnewman at compubrite dot com
  2005-11-05  1:17 ` ppluzhnikov at charter dot net
                   ` (14 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: rnewman at compubrite dot com @ 2005-11-05  1:14 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from rnewman at compubrite dot com  2005-11-05 01:13 -------
(In reply to comment #1)
> Hmm, GCC seems to think "size ? 1 : d->size" is type-dependent in a way it is
> as D is type dependent. 


I disagree. D is not type depenendent at all -- it is a struct containing
exactly one int field; it doesn't change in any way no matter what
instantiation args are used.  Therefore, d->size is not type dependent either.


-- 

rnewman at compubrite dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |rnewman at compubrite dot
                   |                            |com


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


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

* [Bug c++/24680] Invalid template code accepted
  2005-11-05  0:44 [Bug c++/24680] New: [accept invalid] Invalid template code accepted ppluzhnikov at charter dot net
  2005-11-05  0:55 ` [Bug c++/24680] " pinskia at gcc dot gnu dot org
  2005-11-05  1:14 ` rnewman at compubrite dot com
@ 2005-11-05  1:17 ` ppluzhnikov at charter dot net
  2005-11-05  1:21 ` rnewman at compubrite dot com
                   ` (13 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: ppluzhnikov at charter dot net @ 2005-11-05  1:17 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from ppluzhnikov at charter dot net  2005-11-05 01:17 -------
Another variation of the same theme:

template <typename T>
List<T> &List<T>::fill(const T &t, int size)
{
    this->resize(1);
    this->resize(d->size);
    return *this;
}

$ /usr/local/gcc-4.1/bin/g++ -c junk.cc
# silently accepted

$ edgcpfe --gnu_version=30400 junk.cc
"junk.cc", line 13: error: class template "List<T>" has no member "resize"
      this->resize(1);
            ^

"junk.cc", line 14: error: class template "List<T>" has no member "resize"
      this->resize(d->size);
            ^

2 errors detected in the compilation of "junk.cc".

# same errors with 'edgcpfe --strict'

BTW, the test case is reduced from Qt4 sources, where 'resize()' is a typo:
reserve() was intended. IOW, g++ is hiding the bug from Qt developers.


-- 


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


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

* [Bug c++/24680] Invalid template code accepted
  2005-11-05  0:44 [Bug c++/24680] New: [accept invalid] Invalid template code accepted ppluzhnikov at charter dot net
                   ` (2 preceding siblings ...)
  2005-11-05  1:17 ` ppluzhnikov at charter dot net
@ 2005-11-05  1:21 ` rnewman at compubrite dot com
  2005-11-05  1:24 ` pinskia at gcc dot gnu dot org
                   ` (12 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: rnewman at compubrite dot com @ 2005-11-05  1:21 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from rnewman at compubrite dot com  2005-11-05 01:21 -------
See 14.6.2.1 "Dependent names" and 14.6.3 "Non Dependent name"


-- 


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


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

* [Bug c++/24680] Invalid template code accepted
  2005-11-05  0:44 [Bug c++/24680] New: [accept invalid] Invalid template code accepted ppluzhnikov at charter dot net
                   ` (3 preceding siblings ...)
  2005-11-05  1:21 ` rnewman at compubrite dot com
@ 2005-11-05  1:24 ` pinskia at gcc dot gnu dot org
  2005-11-05  1:29 ` rnewman at compubrite dot com
                   ` (11 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-11-05  1:24 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #5 from pinskia at gcc dot gnu dot org  2005-11-05 01:24 -------
this better be type dependent, otherwise it is just useless really.


-- 


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


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

* [Bug c++/24680] Invalid template code accepted
  2005-11-05  0:44 [Bug c++/24680] New: [accept invalid] Invalid template code accepted ppluzhnikov at charter dot net
                   ` (4 preceding siblings ...)
  2005-11-05  1:24 ` pinskia at gcc dot gnu dot org
@ 2005-11-05  1:29 ` rnewman at compubrite dot com
  2005-11-05  1:35 ` pinskia at gcc dot gnu dot org
                   ` (10 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: rnewman at compubrite dot com @ 2005-11-05  1:29 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #6 from rnewman at compubrite dot com  2005-11-05 01:29 -------
Just to be clear:

List<T> *is* type dependent.
List<T>::D is *not*.


-- 


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


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

* [Bug c++/24680] Invalid template code accepted
  2005-11-05  0:44 [Bug c++/24680] New: [accept invalid] Invalid template code accepted ppluzhnikov at charter dot net
                   ` (5 preceding siblings ...)
  2005-11-05  1:29 ` rnewman at compubrite dot com
@ 2005-11-05  1:35 ` pinskia at gcc dot gnu dot org
  2005-11-05  1:55 ` rnewman at compubrite dot com
                   ` (9 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-11-05  1:35 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #7 from pinskia at gcc dot gnu dot org  2005-11-05 01:35 -------
List<T>::D is by 
14.6.2.1 pargagraph 1 point 2:
a qufified-id with a nested-name-specifier which contains a class-name that
names a dependent type of whos unqualified-if names a dependent type.


So by those rules it is type dependent.  (maybe I am missing something).


-- 


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


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

* [Bug c++/24680] Invalid template code accepted
  2005-11-05  0:44 [Bug c++/24680] New: [accept invalid] Invalid template code accepted ppluzhnikov at charter dot net
                   ` (6 preceding siblings ...)
  2005-11-05  1:35 ` pinskia at gcc dot gnu dot org
@ 2005-11-05  1:55 ` rnewman at compubrite dot com
  2005-11-05  1:58 ` pinskia at gcc dot gnu dot org
                   ` (8 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: rnewman at compubrite dot com @ 2005-11-05  1:55 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #8 from rnewman at compubrite dot com  2005-11-05 01:55 -------
But 14.6.2.1 says: "Inside a template, some constructs have semantics which may
differ from one instantiation to another.  Such a construct depends on the
template parameters."

14.6.2.2 [Example
    template <class T> struct X : B<T> {
        typename T::A* pa;
        void f(B<T>* pb) {
            static int i = B<T>::i;
            pb->j++;
        }
    };
the base class name B<T>, the type name T::A, the names B<T>::i and pb->j
explicitly depend on the _template-parameter_. -- end example]

There is no explicit dependence for List<T>::D on the template parameter.  The
semantics of D do not change depending upon the instantiation of T.

I believe point two refers to this kind of construct:

    List::D<T>

   "-- a _qualified-id_ with a _nested-name-specifier_ which contains a
class-name that names a dependent type...."  IOW: if the nested name depends on
the template arg, then the nesting entity does too.  But not the other way
around.


-- 


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


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

* [Bug c++/24680] Invalid template code accepted
  2005-11-05  0:44 [Bug c++/24680] New: [accept invalid] Invalid template code accepted ppluzhnikov at charter dot net
                   ` (7 preceding siblings ...)
  2005-11-05  1:55 ` rnewman at compubrite dot com
@ 2005-11-05  1:58 ` pinskia at gcc dot gnu dot org
  2005-11-05  2:18 ` pinskia at gcc dot gnu dot org
                   ` (7 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-11-05  1:58 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #9 from pinskia at gcc dot gnu dot org  2005-11-05 01:58 -------
(In reply to comment #8)
Hmm, I assume you are looking at C++03 and not C++98.  I was looking at C++98,
maybe there was some defect report about this.


-- 


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


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

* [Bug c++/24680] Invalid template code accepted
  2005-11-05  0:44 [Bug c++/24680] New: [accept invalid] Invalid template code accepted ppluzhnikov at charter dot net
                   ` (8 preceding siblings ...)
  2005-11-05  1:58 ` pinskia at gcc dot gnu dot org
@ 2005-11-05  2:18 ` pinskia at gcc dot gnu dot org
  2005-11-05  2:19 ` pinskia at gcc dot gnu dot org
                   ` (6 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-11-05  2:18 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #10 from pinskia at gcc dot gnu dot org  2005-11-05 02:18 -------
(In reply to comment #9)
Never mind that, the numbers have changed a little.


Take the following example:
template <typename T>
struct List
{
    struct D { int size; };
    D *d;

    List &fill(const T &t, int size = -1);
};

template<>
struct List<int>::D
{
  int d;
};

template <typename T>
List<T> &List<T>::fill(const T &t, int size)
{
    resize(d->size);
    return *this;
}



int main(void)
{
  List<int> a;
  a.fill(1, 1);
}


This is really invalid code as List<int>::D::size does not exist but it can
only be diagnost at instaination time.


-- 


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


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

* [Bug c++/24680] Invalid template code accepted
  2005-11-05  0:44 [Bug c++/24680] New: [accept invalid] Invalid template code accepted ppluzhnikov at charter dot net
                   ` (9 preceding siblings ...)
  2005-11-05  2:18 ` pinskia at gcc dot gnu dot org
@ 2005-11-05  2:19 ` pinskia at gcc dot gnu dot org
  2005-11-05  2:23 ` pinskia at gcc dot gnu dot org
                   ` (5 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-11-05  2:19 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #11 from pinskia at gcc dot gnu dot org  2005-11-05 02:19 -------
So it looks like we have found an EDG bug and not a GCC one.

As for
>There is no explicit dependence for List<T>::D on the template parameter.
>The semantics of D do not change depending upon the instantiation of T.

That is false see my example.


-- 


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


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

* [Bug c++/24680] Invalid template code accepted
  2005-11-05  0:44 [Bug c++/24680] New: [accept invalid] Invalid template code accepted ppluzhnikov at charter dot net
                   ` (10 preceding siblings ...)
  2005-11-05  2:19 ` pinskia at gcc dot gnu dot org
@ 2005-11-05  2:23 ` pinskia at gcc dot gnu dot org
  2005-11-05  2:33 ` pinskia at gcc dot gnu dot org
                   ` (4 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-11-05  2:23 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #12 from pinskia at gcc dot gnu dot org  2005-11-05 02:23 -------
(In reply to comment #10)
> This is really invalid code as List<int>::D::size does not exist but it can
> only be diagnost at instaination time.

Oh and resize is not declared either but since d->size is dependent as shown by
my example it cannot be looked up at defintion time.


-- 


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


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

* [Bug c++/24680] Invalid template code accepted
  2005-11-05  0:44 [Bug c++/24680] New: [accept invalid] Invalid template code accepted ppluzhnikov at charter dot net
                   ` (11 preceding siblings ...)
  2005-11-05  2:23 ` pinskia at gcc dot gnu dot org
@ 2005-11-05  2:33 ` pinskia at gcc dot gnu dot org
  2005-11-05  2:49 ` pinskia at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-11-05  2:33 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #13 from pinskia at gcc dot gnu dot org  2005-11-05 02:33 -------
Ok, here is a real testcase which shows that EDG gets it really wrong:
#include <stdio.h>


void resize(double&)
{
  printf("resize::double\n");
}
void resize(int&)
{
  printf("resize::int\n");
}



template <typename T>
struct List
{
    struct D { int size; };
    D *d;

    List &fill(const T &t, int size = -1);
};

template<>
struct List<int>::D
{
   double size;
};

template <typename T>
List<T> &List<T>::fill(const T &t, int size)
{
    resize(d->size);
    return *this;
}

int main(void)
{
  List<int> a;
  a.fill(1, 1);
  return 0;
}
-------

So you found a bug in EDG and not GCC.
The error which EDG front-end gives:

"ComeauTest.c", line 33: error: a reference of type "int &" (not
const-qualified)
          cannot be initialized with a value of type "double"
      resize(d->size);
             ^
          detected during instantiation of
                    "List<T> &List<T>::fill(const T &, int) [with T=int]" 

1 error detected in the compilation of "ComeauTest.c".

Which does not make sense at all since List<T>::D is type dependent and so is
d->size as shown above.


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|                            |INVALID


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


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

* [Bug c++/24680] Invalid template code accepted
  2005-11-05  0:44 [Bug c++/24680] New: [accept invalid] Invalid template code accepted ppluzhnikov at charter dot net
                   ` (12 preceding siblings ...)
  2005-11-05  2:33 ` pinskia at gcc dot gnu dot org
@ 2005-11-05  2:49 ` pinskia at gcc dot gnu dot org
  2005-11-05  3:10 ` pinskia at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-11-05  2:49 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #14 from pinskia at gcc dot gnu dot org  2005-11-05 02:49 -------
(In reply to comment #13)
> The error which EDG front-end gives:
> "ComeauTest.c", line 33: error: a reference of type "int &" (not
> const-qualified)
>           cannot be initialized with a value of type "double"
>       resize(d->size);
>              ^
>           detected during instantiation of
>                     "List<T> &List<T>::fill(const T &, int) [with T=int]" 
> 1 error detected in the compilation of "ComeauTest.c".

The other reason why this does not make sense is that EDG/Comeau is saying that
the type of d->size is always int but when instantiate List<T>::fill, the
front-end sees that it is not an int and then errors out.


-- 


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


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

* [Bug c++/24680] Invalid template code accepted
  2005-11-05  0:44 [Bug c++/24680] New: [accept invalid] Invalid template code accepted ppluzhnikov at charter dot net
                   ` (13 preceding siblings ...)
  2005-11-05  2:49 ` pinskia at gcc dot gnu dot org
@ 2005-11-05  3:10 ` pinskia at gcc dot gnu dot org
  2005-11-05  3:18 ` pinskia at gcc dot gnu dot org
  2005-11-07 17:39 ` rnewman at compubrite dot com
  16 siblings, 0 replies; 18+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-11-05  3:10 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #15 from pinskia at gcc dot gnu dot org  2005-11-05 03:10 -------
hold one for a second there is a defect report about this:
http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#224

See also:
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2000/n1251.html

So EDG just does not follow the defect report.


-- 


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


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

* [Bug c++/24680] Invalid template code accepted
  2005-11-05  0:44 [Bug c++/24680] New: [accept invalid] Invalid template code accepted ppluzhnikov at charter dot net
                   ` (14 preceding siblings ...)
  2005-11-05  3:10 ` pinskia at gcc dot gnu dot org
@ 2005-11-05  3:18 ` pinskia at gcc dot gnu dot org
  2005-11-07 17:39 ` rnewman at compubrite dot com
  16 siblings, 0 replies; 18+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-11-05  3:18 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #16 from pinskia at gcc dot gnu dot org  2005-11-05 03:18 -------
Just for later reference the defintion of what a dependent name is slightly
different now after the DR:
A name is a member of an unknown specialization if the name is a qualified-id
in which the nested-name-specifier names a dependent type that is not the
current instantiation.

A type is dependent if it is

a template parameter, 
a member of an unknown specialization, 
a nested class that is a member of the current instantiation, 
a cv-qualified type where the cv-unqualified type is dependent, 
a compound type constructed from any dependent type, 
an array type constructed from any dependent type or whose size is specified by
a constant expression that is value-dependent, or 
a template-id in which either the template name is a template parameter or any
of the template arguments is a dependent type or an expression that is
type-dependent or value-dependent. 

-----
This is obvious the "a nested class that is a member of the current
instantiation" case.


-- 


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


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

* [Bug c++/24680] Invalid template code accepted
  2005-11-05  0:44 [Bug c++/24680] New: [accept invalid] Invalid template code accepted ppluzhnikov at charter dot net
                   ` (15 preceding siblings ...)
  2005-11-05  3:18 ` pinskia at gcc dot gnu dot org
@ 2005-11-07 17:39 ` rnewman at compubrite dot com
  16 siblings, 0 replies; 18+ messages in thread
From: rnewman at compubrite dot com @ 2005-11-07 17:39 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #17 from rnewman at compubrite dot com  2005-11-07 17:39 -------
I concede the argument.


-- 


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


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

end of thread, other threads:[~2005-11-07 17:39 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-11-05  0:44 [Bug c++/24680] New: [accept invalid] Invalid template code accepted ppluzhnikov at charter dot net
2005-11-05  0:55 ` [Bug c++/24680] " pinskia at gcc dot gnu dot org
2005-11-05  1:14 ` rnewman at compubrite dot com
2005-11-05  1:17 ` ppluzhnikov at charter dot net
2005-11-05  1:21 ` rnewman at compubrite dot com
2005-11-05  1:24 ` pinskia at gcc dot gnu dot org
2005-11-05  1:29 ` rnewman at compubrite dot com
2005-11-05  1:35 ` pinskia at gcc dot gnu dot org
2005-11-05  1:55 ` rnewman at compubrite dot com
2005-11-05  1:58 ` pinskia at gcc dot gnu dot org
2005-11-05  2:18 ` pinskia at gcc dot gnu dot org
2005-11-05  2:19 ` pinskia at gcc dot gnu dot org
2005-11-05  2:23 ` pinskia at gcc dot gnu dot org
2005-11-05  2:33 ` pinskia at gcc dot gnu dot org
2005-11-05  2:49 ` pinskia at gcc dot gnu dot org
2005-11-05  3:10 ` pinskia at gcc dot gnu dot org
2005-11-05  3:18 ` pinskia at gcc dot gnu dot org
2005-11-07 17:39 ` rnewman at compubrite dot com

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).