]> granicus.if.org Git - clang/commit
Sema: delay the DLL exported member referencing
authorSaleem Abdulrasool <compnerd@compnerd.org>
Sat, 3 Dec 2016 01:57:47 +0000 (01:57 +0000)
committerSaleem Abdulrasool <compnerd@compnerd.org>
Sat, 3 Dec 2016 01:57:47 +0000 (01:57 +0000)
commit012b8f13a36df5f78c62236cb3b3fc595eaa7e00
tree40cb19c3cc558608dc8569de0868a4c575ecfece
parent8d784e0ffe95404281722c6e141885628bf0b19f
Sema: delay the DLL exported member referencing

An explicit template specialization can cause the implicit template
specialization of a type which inherits the attributes.  In such a case, we
would end up with a delayed template specialization for a dll exported type
which we would fail to reference.  This would trigger an assertion.

We now propagate the dll storage attributes through the inheritance
chain.  Only after having done so do we reference the delayed template
specializations.  This allows any implicit specializations which inherit dll
storage to also be referenced.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@288570 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Sema/SemaTemplate.cpp
test/CodeGenCXX/windows-implicit-dllexport-template-specialization.cpp [new file with mode: 0644]