diff options
| author | Douglas Gregor <dgregor@apple.com> | 2009-07-29 16:15:53 +0000 |
|---|---|---|
| committer | Douglas Gregor <dgregor@apple.com> | 2009-07-29 16:15:53 +0000 |
| commit | ab60c7f60b66144bc2b5a5d6e15d96c8a7697c2b (patch) | |
| tree | ca9969ad5c2df92b5c12b2deaf9bbe2fe0523ef1 /clang | |
| parent | b55d8e914ad5570218fc6d97eda388cb2cc8b207 (diff) | |
| download | bcm5719-llvm-ab60c7f60b66144bc2b5a5d6e15d96c8a7697c2b.tar.gz bcm5719-llvm-ab60c7f60b66144bc2b5a5d6e15d96c8a7697c2b.zip | |
Remove an obsolete kludge based on the previous, completely broken handling of function templates
llvm-svn: 77464
Diffstat (limited to 'clang')
| -rw-r--r-- | clang/lib/Sema/SemaTemplate.cpp | 9 | ||||
| -rw-r--r-- | clang/test/SemaTemplate/temp_class_spec.cpp | 2 |
2 files changed, 3 insertions, 8 deletions
diff --git a/clang/lib/Sema/SemaTemplate.cpp b/clang/lib/Sema/SemaTemplate.cpp index f27d551d102..55c43c2d0aa 100644 --- a/clang/lib/Sema/SemaTemplate.cpp +++ b/clang/lib/Sema/SemaTemplate.cpp @@ -69,13 +69,8 @@ TemplateNameKind Sema::isTemplateName(const IdentifierInfo &II, Scope *S, // FIXME: What follows is a slightly less gross hack than what used to // follow. - if (FunctionDecl *FD = dyn_cast<FunctionDecl>(IIDecl)) { - if (FD->getDescribedFunctionTemplate()) { - TemplateResult = TemplateTy::make(FD); - return TNK_Function_template; - } - } else if (OverloadedFunctionDecl *Ovl - = dyn_cast<OverloadedFunctionDecl>(IIDecl)) { + if (OverloadedFunctionDecl *Ovl + = dyn_cast<OverloadedFunctionDecl>(IIDecl)) { for (OverloadedFunctionDecl::function_iterator F = Ovl->function_begin(), FEnd = Ovl->function_end(); F != FEnd; ++F) { diff --git a/clang/test/SemaTemplate/temp_class_spec.cpp b/clang/test/SemaTemplate/temp_class_spec.cpp index 26a6a1dc385..e625009c46a 100644 --- a/clang/test/SemaTemplate/temp_class_spec.cpp +++ b/clang/test/SemaTemplate/temp_class_spec.cpp @@ -325,7 +325,7 @@ template<class T1, class T2, int I> class A<T1*, T2, I> { }; //#3 template<class T> class A<int, T*, 5> { }; //#4 template<class T1, class T2, int I> class A<T1, T2*, I> { }; //#5 -// Redeclaration of class template partial specializations +// Redefinition of class template partial specializations template<typename T, T N, typename U> class A0; template<typename T, T N> class A0<T, N, int> { }; // expected-note{{here}} |

