[all-commits] [llvm/llvm-project] a08876: [dllexport] Instantiate default ctor default args ...
Hans via All-commits
all-commits at lists.llvm.org
Thu Nov 12 04:35:51 PST 2020
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: a088766508aa1a5b6e655a239546f1a64e96eb11
https://github.com/llvm/llvm-project/commit/a088766508aa1a5b6e655a239546f1a64e96eb11
Author: Hans Wennborg <hans at chromium.org>
Date: 2020-11-12 (Thu, 12 Nov 2020)
Changed paths:
M clang/include/clang/Sema/Sema.h
M clang/lib/CodeGen/MicrosoftCXXABI.cpp
M clang/lib/Sema/SemaDecl.cpp
M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
M clang/test/CodeGenCXX/dllexport-ctor-closure.cpp
M clang/test/SemaCXX/dllexport.cpp
Log Message:
-----------
[dllexport] Instantiate default ctor default args for explicit specializations (PR45811)
For dllexported default constructors with default arguments, we export
default constructor closures which pass in the default args. (See D8331
for a good explanation.)
For templates, that means those default args must be instantiated even
if the function isn't called. That is done by the
InstantiateDefaultCtorDefaultArgs() function, but it wasn't done for
explicit specializations, causing asserts (see bug).
Differential revision: https://reviews.llvm.org/D91089
More information about the All-commits
mailing list