llvm-project/clang/lib/Parse
Douglas Gregor fe17d2550b Improve parsing and instantiation of destructor names, so that we can
now cope with the destruction of types named as dependent templates,
e.g.,

  y->template Y<T>::~Y()

Nominally, we implement C++0x [basic.lookup.qual]p6. However, we don't
follow the letter of the standard here because that would fail to
parse

  template<typename T, typename U>
  X0<T, U>::~X0() { }

properly. The problem is captured in core issue 339, which gives some
(but not enough!) guidance. I expect to revisit this code when the
resolution of 339 is clear, and/or we start capturing better source
information for DeclarationNames.

Fixes PR6152.

llvm-svn: 96367
2010-02-16 19:09:40 +00:00
..
AttributeList.cpp Parse C++ member check attributes - base_check, hiding, and override. 2009-11-25 04:20:27 +00:00
CMakeLists.txt Reorder files. 2009-07-21 21:03:50 +00:00
DeclSpec.cpp Revert the unused TST_pixel entry from r95335 as it is not listed in the Sema 2010-02-05 07:38:55 +00:00
Makefile -fno-rtti is now the default. 2010-01-24 20:43:31 +00:00
MinimalAction.cpp Keep track of the source locations for each protocol reference in 2010-01-16 15:02:53 +00:00
ParseCXXInlineMethods.cpp Refactor to remove more dependencies on PreDeclaratorDC. I seem to have made 2009-12-19 10:49:29 +00:00
ParseDecl.cpp Improve the diagnostic given when referring to a tag type without a tag (in C) 2010-02-14 01:03:10 +00:00
ParseDeclCXX.cpp Improve parsing and instantiation of destructor names, so that we can 2010-02-16 19:09:40 +00:00
ParseExpr.cpp When we're parsing an expression that may have looked like a 2010-02-05 19:11:37 +00:00
ParseExprCXX.cpp Improve parsing and instantiation of destructor names, so that we can 2010-02-16 19:09:40 +00:00
ParseInit.cpp PR5218: Replace IdentifierInfo::getName with StringRef version, now that clients 2009-10-18 21:17:35 +00:00
ParseObjc.cpp Issue a bettter diagnostics for incorrect property setter name. 2010-02-15 22:20:11 +00:00
ParsePragma.cpp Remove tabs, and whitespace cleanups. 2009-09-09 15:08:12 +00:00
ParsePragma.h Remove tabs, and whitespace cleanups. 2009-09-09 15:08:12 +00:00
ParseStmt.cpp Clean up ownership of 'AttributeList' objects in Parser. Apparently 2010-02-11 02:19:13 +00:00
ParseTemplate.cpp When placing an annotation token over an existing annotation token, make sure that the new token's range extends to the end of the old token. Assert that in AnnotateCachedTokens. Fixes PR6248. 2010-02-08 19:35:18 +00:00
ParseTentative.cpp First stage of adding AltiVec support 2010-02-05 00:12:22 +00:00
Parser.cpp Clean up ownership of 'AttributeList' objects in Parser. Apparently 2010-02-11 02:19:13 +00:00
RAIIObjectsForParser.h Privatize class members. 2009-12-10 21:50:21 +00:00