зеркало из https://github.com/microsoft/clang.git
3f5b61c394
template<typename T> struct X { struct Inner; }; template struct X<int>::Inner; This change is larger than it looks because it also fixes some a problem with nested-name-specifiers and tags. We weren't requiring the DeclContext associated with the scope specifier of a tag to be complete. Therefore, when looking for something like "struct X<int>::Inner", we weren't instantiating X<int>. This, naturally, uncovered a problem with member pointers, where we were requiring the left-hand side of a member pointer access expression (e.g., x->*) to be a complete type. However, this is wrong: the semantics of this expression does not require a complete type (EDG agrees). Stuart vouched for me. Blame him. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71756 91177308-0d34-0410-b5e6-96231b3b80d8 |
||
---|---|---|
.. | ||
AstGuard.h | ||
AttributeList.cpp | ||
CMakeLists.txt | ||
DeclSpec.cpp | ||
ExtensionRAIIObject.h | ||
Makefile | ||
MinimalAction.cpp | ||
ParseCXXInlineMethods.cpp | ||
ParseDecl.cpp | ||
ParseDeclCXX.cpp | ||
ParseExpr.cpp | ||
ParseExprCXX.cpp | ||
ParseInit.cpp | ||
ParseObjc.cpp | ||
ParsePragma.cpp | ||
ParsePragma.h | ||
ParseStmt.cpp | ||
ParseTemplate.cpp | ||
ParseTentative.cpp | ||
Parser.cpp |