зеркало из https://github.com/microsoft/clang-1.git
Correctly propagate the storage class to function template instantiations.
This fixes pr15753. This is another case of the fuzzy definition of the "as written" storage class of an instantiation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179581 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Родитель
148d9223f0
Коммит
459ef03126
|
@ -1162,7 +1162,7 @@ Decl *TemplateDeclInstantiator::VisitFunctionDecl(FunctionDecl *D,
|
|||
FunctionDecl *Function =
|
||||
FunctionDecl::Create(SemaRef.Context, DC, D->getInnerLocStart(),
|
||||
D->getNameInfo(), T, TInfo,
|
||||
D->getStorageClass(),
|
||||
D->getCanonicalDecl()->getStorageClass(),
|
||||
D->isInlineSpecified(), D->hasWrittenPrototype(),
|
||||
D->isConstexpr());
|
||||
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
// RUN: %clang_cc1 -emit-llvm %s -o - | FileCheck %s
|
||||
|
||||
template <typename T> static int Foo(T t);
|
||||
template <typename T>
|
||||
int Foo(T t) {
|
||||
return t;
|
||||
}
|
||||
template<> int Foo<int>(int i) {
|
||||
return i;
|
||||
}
|
||||
|
||||
// CHECK-NOT: define
|
Загрузка…
Ссылка в новой задаче