http://llvm.org/bugs/show_bug.cgi?id=11856

Douglas Gregor <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED

--- Comment #2 from Douglas Gregor <[email protected]> 2012-03-10 17:53:33 CST 
---
(In reply to comment #1)
> clang, gcc and edg all agree that "it1->end <" starts a template-id. Is it
> possible they're all wrong? 

EDG 4.3, at least, does not assume that "it1->end <" starts a template-id.

The paragraph that matters here is [basic.lookup.classref]p1:
  "In a class member access expression (5.2.5), if the . or -> token is
immediately followed by an identifier followed by a <, the identifier must be
looked up to determine whether the < is the beginning of a template argument
list (14.2) or a less-than operator. The identifier is first looked up in the
class of the object expression. If the identifier is not found, it is then
looked up in the context of the entire postfix-expression and shall name a
class template."

Since "it1" is dependent, presumably the identifier is not found so we consider
what happens if we look in the context of the entire postfix-expression. Since
we find a function template, we should not conclude that we have the start of a
template-id.

Fixed in Clang r152520.

-- 
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs

Reply via email to