diff options
author | Hans Wennborg <hans@hanshq.net> | 2014-05-19 20:14:13 +0000 |
---|---|---|
committer | Hans Wennborg <hans@hanshq.net> | 2014-05-19 20:14:13 +0000 |
commit | 7f26fa67154187401a70efc06e140e7f090e5c3b (patch) | |
tree | 6c33c911c7c0b1c178cfc182d560a1547c2a7ec1 /clang/lib/Sema/SemaDecl.cpp | |
parent | dc9210276637bf67091ff8885f0c2c0e08fadbcb (diff) | |
download | bcm5719-llvm-7f26fa67154187401a70efc06e140e7f090e5c3b.tar.gz bcm5719-llvm-7f26fa67154187401a70efc06e140e7f090e5c3b.zip |
Allow dllimport on function definitions when they're template instantiations
llvm-svn: 209157
Diffstat (limited to 'clang/lib/Sema/SemaDecl.cpp')
-rw-r--r-- | clang/lib/Sema/SemaDecl.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp index 5276cafcf72..44ca495cb15 100644 --- a/clang/lib/Sema/SemaDecl.cpp +++ b/clang/lib/Sema/SemaDecl.cpp @@ -9766,7 +9766,8 @@ Decl *Sema::ActOnStartOfFunctionDef(Scope *FnBodyScope, Decl *D) { ResolveExceptionSpec(D->getLocation(), FPT); // dllimport cannot be applied to non-inline function definitions. - if (FD->hasAttr<DLLImportAttr>() && !FD->isInlined()) { + if (FD->hasAttr<DLLImportAttr>() && !FD->isInlined() && + !FD->isTemplateInstantiation()) { assert(!FD->hasAttr<DLLExportAttr>()); Diag(FD->getLocation(), diag::err_attribute_dllimport_function_definition); FD->setInvalidDecl(); |