summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Object
diff options
context:
space:
mode:
authorSam Clegg <sbc@chromium.org>2018-04-27 00:17:21 +0000
committerSam Clegg <sbc@chromium.org>2018-04-27 00:17:21 +0000
commitd5504a0a6261f59482c1d6d9a2d022757b795aa7 (patch)
tree28f5a27fc1230544ccf01c8adf781c781597ea0e /llvm/lib/Object
parent34ec0bfb5ecee851d31d77a21dd69d49d58eb6b5 (diff)
downloadbcm5719-llvm-d5504a0a6261f59482c1d6d9a2d022757b795aa7.tar.gz
bcm5719-llvm-d5504a0a6261f59482c1d6d9a2d022757b795aa7.zip
[WebAssembly] Section symbols must have local binding
Summary: Also test for symbols information in test/MC/WebAssembly/debug-info.ll. Subscribers: jfb, dschuff, jgravelle-google, aheejin, sunfish, JDevlieghere, llvm-commits Differential Revision: https://reviews.llvm.org/D46160 llvm-svn: 331005
Diffstat (limited to 'llvm/lib/Object')
-rw-r--r--llvm/lib/Object/WasmObjectFile.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/lib/Object/WasmObjectFile.cpp b/llvm/lib/Object/WasmObjectFile.cpp
index 121e1f98f3e..d37057fc391 100644
--- a/llvm/lib/Object/WasmObjectFile.cpp
+++ b/llvm/lib/Object/WasmObjectFile.cpp
@@ -466,6 +466,10 @@ Error WasmObjectFile::parseLinkingSectionSymtab(const uint8_t *&Ptr,
break;
case wasm::WASM_SYMBOL_TYPE_SECTION: {
+ if ((Info.Flags & wasm::WASM_SYMBOL_BINDING_MASK) !=
+ wasm::WASM_SYMBOL_BINDING_LOCAL)
+ return make_error<GenericBinaryError>("Section symbol must have local binding",
+ object_error::parse_failed);
Info.ElementIndex = readVaruint32(Ptr);
// Use somewhat unique section name as symbol name.
StringRef SectionName = Sections[Info.ElementIndex].Name;
OpenPOWER on IntegriCloud