aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Object/XCOFFObjectFile.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Object/XCOFFObjectFile.cpp')
-rw-r--r--llvm/lib/Object/XCOFFObjectFile.cpp16
1 files changed, 12 insertions, 4 deletions
diff --git a/llvm/lib/Object/XCOFFObjectFile.cpp b/llvm/lib/Object/XCOFFObjectFile.cpp
index 0943970..602b735 100644
--- a/llvm/lib/Object/XCOFFObjectFile.cpp
+++ b/llvm/lib/Object/XCOFFObjectFile.cpp
@@ -189,8 +189,12 @@ Expected<StringRef> XCOFFObjectFile::getSectionName(DataRefImpl Sec) const {
}
uint64_t XCOFFObjectFile::getSectionAddress(DataRefImpl Sec) const {
- return is64Bit() ? toSection64(Sec)->VirtualAddress
- : toSection32(Sec)->VirtualAddress;
+ // Avoid ternary due to failure to convert the ubig32_t value to a unit64_t
+ // with MSVC.
+ if (is64Bit())
+ return toSection64(Sec)->VirtualAddress;
+
+ return toSection32(Sec)->VirtualAddress;
}
uint64_t XCOFFObjectFile::getSectionIndex(DataRefImpl Sec) const {
@@ -203,8 +207,12 @@ uint64_t XCOFFObjectFile::getSectionIndex(DataRefImpl Sec) const {
}
uint64_t XCOFFObjectFile::getSectionSize(DataRefImpl Sec) const {
- return is64Bit() ? toSection64(Sec)->SectionSize
- : toSection32(Sec)->SectionSize;
+ // Avoid ternary due to failure to convert the ubig32_t value to a unit64_t
+ // with MSVC.
+ if (is64Bit())
+ return toSection64(Sec)->SectionSize;
+
+ return toSection32(Sec)->SectionSize;
}
Expected<ArrayRef<uint8_t>>