------- Additional Comments From pinskia at gcc dot gnu dot org  2005-03-03 
23:25 -------
Hmm, this is the reduced testcase (but I don't know if this is invalid as 
Comeau also rejects it but I think 
it is valid):
template<typename> int nick(int e);
template<int> struct operation{int nick;};
template<int s>
bool alphaMnemonic(const operation<s>& o1, const operation<s>& o2)
{
  return o1.nick < o2.nick;
}

If nick was not a template or not declated we accept it, if alphaMnemonic is 
not a template we accept it.
I think we have a name lookup problem really.  if we want o1.nick as a template 
we need the template 
keyword.  This is not a regression if this is valid code, I really think it is. 
 ICC 8.0 accepts it.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |pinskia at gcc dot gnu dot
                   |                            |org
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|                            |1
           Keywords|                            |rejects-valid
      Known to fail|                            |3.3.3 3.4.0 4.0.0 2.95.3
                   |                            |3.2.3
   Last reconfirmed|0000-00-00 00:00:00         |2005-03-03 23:25:22
               date|                            |
            Summary|lost parser                 |parser thinks something is a
                   |                            |start of a template-id when
                   |                            |it is just less than


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

Reply via email to