aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
diff options
context:
space:
mode:
authorBen Dunbobbin <Ben.Dunbobbin@sony.com>2022-11-24 00:12:11 +0000
committerBen Dunbobbin <Ben.Dunbobbin@sony.com>2022-11-24 00:23:17 +0000
commit437ccf5af9c2aec915a68a164a95d506fbac2324 (patch)
tree3741e8589685df4984e8571c2f1a986e3fbfe92e /llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
parent30275821f1cacd855c7f9246351242223bed9d29 (diff)
downloadllvm-437ccf5af9c2aec915a68a164a95d506fbac2324.zip
llvm-437ccf5af9c2aec915a68a164a95d506fbac2324.tar.gz
llvm-437ccf5af9c2aec915a68a164a95d506fbac2324.tar.bz2
[windows-itanium] Propagate DLL storage class to Initialisation Guard Variables
Initialisation Guard Variables should take their DLL storage class from the guarded variable. Otherwise, there will be a link error if the compiler inlines a reference to the guard variable into another module but that guard variable is not exported from the defining module. This is required for platforms such as PlayStation and windows-itanium, that are aiming for source compatibility with MSVC w.r.t. dllimport/export annotations, given Clang's existing design which allows for inlining of a dllimport function as long as all the variables/functions referenced are also marked dllimport. A similar change exists for the MSVC ABI: https://reviews.llvm.org/D4136. I have added a run test for windows-itanium for this issue to the build recipe: https://reviews.llvm.org/D88124. Differential Revision: https://reviews.llvm.org/D138463
Diffstat (limited to 'llvm/lib/Bitcode/Writer/BitcodeWriter.cpp')
0 files changed, 0 insertions, 0 deletions