summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lld/ELF/EhFrame.cpp2
-rw-r--r--lld/test/ELF/Inputs/no-augmentation.obin0 -> 3640 bytes
-rw-r--r--lld/test/ELF/no-augmentation.test10
3 files changed, 11 insertions, 1 deletions
diff --git a/lld/ELF/EhFrame.cpp b/lld/ELF/EhFrame.cpp
index 00a5faef546..b130ac1ca22 100644
--- a/lld/ELF/EhFrame.cpp
+++ b/lld/ELF/EhFrame.cpp
@@ -111,7 +111,7 @@ template <class ELFT> uint8_t getFdeEncoding(ArrayRef<uint8_t> D) {
if (Version != 1 && Version != 3)
fatal("FDE version 1 or 3 expected, but got " + Twine((unsigned)Version));
- const unsigned char *AugEnd = std::find(D.begin() + 1, D.end(), '\0');
+ const unsigned char *AugEnd = std::find(D.begin(), D.end(), '\0');
if (AugEnd == D.end())
fatal("corrupted CIE");
StringRef Aug(reinterpret_cast<const char *>(D.begin()), AugEnd - D.begin());
diff --git a/lld/test/ELF/Inputs/no-augmentation.o b/lld/test/ELF/Inputs/no-augmentation.o
new file mode 100644
index 00000000000..8b9ff5e5923
--- /dev/null
+++ b/lld/test/ELF/Inputs/no-augmentation.o
Binary files differ
diff --git a/lld/test/ELF/no-augmentation.test b/lld/test/ELF/no-augmentation.test
new file mode 100644
index 00000000000..4a2604aaef8
--- /dev/null
+++ b/lld/test/ELF/no-augmentation.test
@@ -0,0 +1,10 @@
+// RUN: llvm-mc -filetype=obj -triple=mips64-unknown-freebsd %s -o %t.o
+// RUN: ld.lld --eh-frame-hdr %t.o %p/Inputs/no-augmentation.o -o %t \
+// RUN: | FileCheck -allow-empty %s
+
+// REQUIRES: mips
+
+// CHECK-NOT: corrupted or unsupported CIE information
+
+.global __start
+__start:
OpenPOWER on IntegriCloud