Fix - [Clang] Add the ability to map DLL storage class to visibility
authorBen Dunbobbin <Ben.Dunbobbin@sony.com>
Tue, 3 Nov 2020 18:54:57 +0000 (18:54 +0000)
committerBen Dunbobbin <Ben.Dunbobbin@sony.com>
Tue, 3 Nov 2020 19:13:54 +0000 (19:13 +0000)
commit7ad6010f58eac498896e601857ff7eda84466064
treeb63333476b6be773da6825de82828cc274610b19
parent6e80318eecde2639faa1e72be045c78b8b8aedad
Fix - [Clang] Add the ability to map DLL storage class to visibility

415f7ee883 had a silly typo introduced when I inlined some
code into a loop from its own function.

Original commit message:

For PlayStation we offer source code compatibility with
Microsoft's dllimport/export annotations; however, our file
format is based on ELF.

To support this we translate from DLL storage class to ELF
visibility at the end of codegen in Clang.

Other toolchains have used similar strategies (e.g. see the
documentation for this ARM toolchain:

https://developer.arm.com/documentation/dui0530/i/migrating-from-rvct-v3-1-to-rvct-v4-0/changes-to-symbol-visibility-between-rvct-v3-1-and-rvct-v4-0)

This patch adds the ability to perform this translation. Options
are provided to support customizing the mapping behaviour.

Differential Revision: https://reviews.llvm.org/D89970
clang/lib/CodeGen/CodeGenModule.cpp
clang/test/CodeGenCXX/visibility-dllstorageclass.cpp