diff options
| -rw-r--r-- | llvm/include/llvm/Object/XCOFFObjectFile.h | 6 | ||||
| -rw-r--r-- | llvm/lib/Object/XCOFFObjectFile.cpp | 4 |
2 files changed, 10 insertions, 0 deletions
diff --git a/llvm/include/llvm/Object/XCOFFObjectFile.h b/llvm/include/llvm/Object/XCOFFObjectFile.h index 4f80297b04c..fcdbf7a8095 100644 --- a/llvm/include/llvm/Object/XCOFFObjectFile.h +++ b/llvm/include/llvm/Object/XCOFFObjectFile.h @@ -60,6 +60,12 @@ public: bool isReservedSectionType() const; }; +// Explicit extern template declarations. +struct XCOFFSectionHeader32; +struct XCOFFSectionHeader64; +extern template struct XCOFFSectionHeader<XCOFFSectionHeader32>; +extern template struct XCOFFSectionHeader<XCOFFSectionHeader64>; + struct XCOFFSectionHeader32 : XCOFFSectionHeader<XCOFFSectionHeader32> { char Name[XCOFF::NameSize]; support::ubig32_t PhysicalAddress; diff --git a/llvm/lib/Object/XCOFFObjectFile.cpp b/llvm/lib/Object/XCOFFObjectFile.cpp index 5ca2a6a03f0..3ea42bb8b0e 100644 --- a/llvm/lib/Object/XCOFFObjectFile.cpp +++ b/llvm/lib/Object/XCOFFObjectFile.cpp @@ -61,6 +61,10 @@ bool XCOFFSectionHeader<T>::isReservedSectionType() const { return getSectionType() & SectionFlagsReservedMask; } +// Explictly instantiate template classes. +template struct XCOFFSectionHeader<XCOFFSectionHeader32>; +template struct XCOFFSectionHeader<XCOFFSectionHeader64>; + bool XCOFFRelocation32::isRelocationSigned() const { return Info & XR_SIGN_INDICATOR_MASK; } |

