d1d512a9cd1923566a52e57b7e1e8ae65392f66b |
|
09-Jan-2012 |
Nico Weber <nicolasweber@gmx.de> |
Fix "note" of a duplicate explicit instantiation definition following a specialization. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147798 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/temp/temp.spec/temp.expl.spec/examples.cpp
|
ff91d240d431afbec18e25909caaf5c17f26e643 |
|
23-Dec-2011 |
Nico Weber <nicolasweber@gmx.de> |
Fix several issues related to specializations and explicit instantiations. Explicit instantiations following specializations are no-ops and hence have no PointOfInstantiation. That was done correctly in most cases, but for a specialization -> instantiation decl -> instantiation definition chain, the definition didn't realize that it was a no-op. Fix that. Also, when printing diagnostics for these no-ops, get the diag location from the decl name location. Add many test cases, one of them not yet passing (but it failed the same way before this change). Fixes http://llvm.org/pr11558 and more. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147225 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/temp/temp.spec/temp.expl.spec/examples.cpp
|
95ea45072a46ba3c85fc588aed15509a1a0900ed |
|
02-Jun-2011 |
Douglas Gregor <dgregor@apple.com> |
Fix an incorrect warning about explicit template specializations for nested types, from Michael Han! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132431 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/temp/temp.spec/temp.expl.spec/examples.cpp
|
714c992099b3b9442759f29038bb3f2c5a59a23d |
|
15-May-2011 |
Douglas Gregor <dgregor@apple.com> |
When checking a set of template parameter lists against a nested-name-specifier, re-evaluate the nested-name-specifier as if we were entering that context (which we did!), so that we'll resolve a template-id to a particular class template partial specialization. Fixes PR9913. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131383 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/temp/temp.spec/temp.expl.spec/examples.cpp
|
175c5bb2b09217df71319cb3d58b3c511fd04138 |
|
12-May-2011 |
Douglas Gregor <dgregor@apple.com> |
When checking for the necessary 'template<>' headers based on the nested of an out-of-line declaration, only require a 'template<>' header for each enclosing class template that hasn't been previously specialized; previously, we were requiring 'template<>' for enclosing class templates and members of class templates that hadn't been previously specialized. Fixes <rdar://problem/9422013>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131207 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/temp/temp.spec/temp.expl.spec/examples.cpp
|
c840649ed5acccf68e1bc5a9d22f2ea017074586 |
|
10-May-2011 |
Douglas Gregor <dgregor@apple.com> |
Reimplement Sema::MatchTemplateParametersToScopeSpecifier() based on the semantic context referenced by the nested-name-specifier rather than the syntactic form of the nested-name-specifier. The previous incarnation was based on my complete misunderstanding of C++ [temp.expl.spec]. The latest C++0x working draft clarifies the requirements here, and this rewrite is intended to follow that. Along the way, improve source location information in the diagnostics. For example, if we report that a specific type needs or doesn't need a 'template<>' header, we dig out that type in the nested-name-specifier and highlight its range. Fixes: PR5907, PR9421, PR8277, PR8708, PR9482, PR9668, PR9877, and <rdar://problem/9135379>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131138 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/temp/temp.spec/temp.expl.spec/examples.cpp
|