summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Object/MachOObjectFile.cpp
diff options
context:
space:
mode:
authorSteven Wu <stevenwu@apple.com>2017-05-31 22:17:43 +0000
committerSteven Wu <stevenwu@apple.com>2017-05-31 22:17:43 +0000
commit97e2cf87e1a0cdfcb9330c364ac1be1535be99b9 (patch)
tree6341e1fc7bb35b84c62edf8ca2c26dd47a2de2a2 /llvm/lib/Object/MachOObjectFile.cpp
parent244621faade77dd876051d80691ae503218246d3 (diff)
downloadbcm5719-llvm-97e2cf87e1a0cdfcb9330c364ac1be1535be99b9.tar.gz
bcm5719-llvm-97e2cf87e1a0cdfcb9330c364ac1be1535be99b9.zip
[MachOObject] Fix bind opcode parser error on valid opcode sequence
BIND_OPCODE_SET_DYLIB_SPECIAL_IMM(0) is a valid way to setp library ordinal. MachOObject should set LibraryOrdinalSet even when IMM is zero. llvm-svn: 304362
Diffstat (limited to 'llvm/lib/Object/MachOObjectFile.cpp')
-rw-r--r--llvm/lib/Object/MachOObjectFile.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/Object/MachOObjectFile.cpp b/llvm/lib/Object/MachOObjectFile.cpp
index bfb8875f47d..084159a61f5 100644
--- a/llvm/lib/Object/MachOObjectFile.cpp
+++ b/llvm/lib/Object/MachOObjectFile.cpp
@@ -3269,7 +3269,6 @@ void MachOBindEntry::moveNext() {
if (ImmValue) {
SignExtended = MachO::BIND_OPCODE_MASK | ImmValue;
Ordinal = SignExtended;
- LibraryOrdinalSet = true;
if (Ordinal < MachO::BIND_SPECIAL_DYLIB_FLAT_LOOKUP) {
*E = malformedError("for BIND_OPCODE_SET_DYLIB_SPECIAL_IMM unknown "
"special ordinal: " + Twine((int)Ordinal) + " for opcode at: "
@@ -3279,6 +3278,7 @@ void MachOBindEntry::moveNext() {
}
} else
Ordinal = 0;
+ LibraryOrdinalSet = true;
DEBUG_WITH_TYPE(
"mach-o-bind",
dbgs() << "BIND_OPCODE_SET_DYLIB_SPECIAL_IMM: "
OpenPOWER on IntegriCloud