diff options
author | Thomas Fransham <tfransham@gmail.com> | 2024-09-20 07:50:45 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-20 09:50:45 +0300 |
commit | 92da37b08f95844576c5d5502712bab0961e2f27 (patch) | |
tree | 3e50a150ab5ca56db7948ec15c058de6f8e3f91f /llvm/lib/Object/XCOFFObjectFile.cpp | |
parent | 2c6e5ef6873e9c80190beb62c625e16802c9901d (diff) | |
download | llvm-92da37b08f95844576c5d5502712bab0961e2f27.zip llvm-92da37b08f95844576c5d5502712bab0961e2f27.tar.gz llvm-92da37b08f95844576c5d5502712bab0961e2f27.tar.bz2 |
[Object][NFC] Add extern template declarations needed by llvm-objdump (#109156)
These symbols are implicitly imported from the LLVM shared library by
llvm-objdump on ELF like platforms, but for windows they need to be
explicitly exported when LLVM is built as shared library.
I also add visibility macros for XCOFFObjectFile::getExceptionEntries
that can't automatically be added by clang tooling since it doesn't
store the source locations for explicit function template
instantiations.
Diffstat (limited to 'llvm/lib/Object/XCOFFObjectFile.cpp')
-rw-r--r-- | llvm/lib/Object/XCOFFObjectFile.cpp | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/llvm/lib/Object/XCOFFObjectFile.cpp b/llvm/lib/Object/XCOFFObjectFile.cpp index 6efb875..cc0da5d 100644 --- a/llvm/lib/Object/XCOFFObjectFile.cpp +++ b/llvm/lib/Object/XCOFFObjectFile.cpp @@ -12,6 +12,7 @@ #include "llvm/Object/XCOFFObjectFile.h" #include "llvm/ADT/StringSwitch.h" +#include "llvm/Support/Compiler.h" #include "llvm/Support/DataExtractor.h" #include "llvm/TargetParser/SubtargetFeature.h" #include <cstddef> @@ -1060,9 +1061,9 @@ Expected<ArrayRef<ExceptEnt>> XCOFFObjectFile::getExceptionEntries() const { ExceptEntStart, ExceptEntStart + getSectionSize(DRI) / sizeof(ExceptEnt)); } -template Expected<ArrayRef<ExceptionSectionEntry32>> +template LLVM_EXPORT_TEMPLATE Expected<ArrayRef<ExceptionSectionEntry32>> XCOFFObjectFile::getExceptionEntries() const; -template Expected<ArrayRef<ExceptionSectionEntry64>> +template LLVM_EXPORT_TEMPLATE Expected<ArrayRef<ExceptionSectionEntry64>> XCOFFObjectFile::getExceptionEntries() const; Expected<XCOFFStringTable> @@ -1376,14 +1377,16 @@ template struct XCOFFSectionHeader<XCOFFSectionHeader64>; template struct XCOFFRelocation<llvm::support::ubig32_t>; template struct XCOFFRelocation<llvm::support::ubig64_t>; -template llvm::Expected<llvm::ArrayRef<llvm::object::XCOFFRelocation64>> -llvm::object::XCOFFObjectFile::relocations<llvm::object::XCOFFSectionHeader64, - llvm::object::XCOFFRelocation64>( - llvm::object::XCOFFSectionHeader64 const &) const; -template llvm::Expected<llvm::ArrayRef<llvm::object::XCOFFRelocation32>> -llvm::object::XCOFFObjectFile::relocations<llvm::object::XCOFFSectionHeader32, - llvm::object::XCOFFRelocation32>( - llvm::object::XCOFFSectionHeader32 const &) const; +template LLVM_EXPORT_TEMPLATE + llvm::Expected<llvm::ArrayRef<llvm::object::XCOFFRelocation64>> + llvm::object::XCOFFObjectFile::relocations< + llvm::object::XCOFFSectionHeader64, llvm::object::XCOFFRelocation64>( + llvm::object::XCOFFSectionHeader64 const &) const; +template LLVM_EXPORT_TEMPLATE + llvm::Expected<llvm::ArrayRef<llvm::object::XCOFFRelocation32>> + llvm::object::XCOFFObjectFile::relocations< + llvm::object::XCOFFSectionHeader32, llvm::object::XCOFFRelocation32>( + llvm::object::XCOFFSectionHeader32 const &) const; bool doesXCOFFTracebackTableBegin(ArrayRef<uint8_t> Bytes) { if (Bytes.size() < 4) |