diff options
author | Sean Silva <silvas@purdue.edu> | 2013-06-20 20:59:41 +0000 |
---|---|---|
committer | Sean Silva <silvas@purdue.edu> | 2013-06-20 20:59:41 +0000 |
commit | 6525e92b32c52772f7d750ada7084245655629e6 (patch) | |
tree | 7cefb475d3fe2285bb127d8da49fb7c2a7689457 /tools/yaml2obj | |
parent | c18f66e70dea8abc8c9d86d40088fc8fc8247b20 (diff) | |
download | llvm-6525e92b32c52772f7d750ada7084245655629e6.tar.gz llvm-6525e92b32c52772f7d750ada7084245655629e6.tar.bz2 llvm-6525e92b32c52772f7d750ada7084245655629e6.tar.xz |
[yaml2obj][ELF] Allow symbols to reference sections.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184468 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/yaml2obj')
-rw-r--r-- | tools/yaml2obj/yaml2elf.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/tools/yaml2obj/yaml2elf.cpp b/tools/yaml2obj/yaml2elf.cpp index 667718af38..421781ce14 100644 --- a/tools/yaml2obj/yaml2elf.cpp +++ b/tools/yaml2obj/yaml2elf.cpp @@ -199,6 +199,13 @@ static void handleSymtabSectionHeader( if (!Sym.Name.empty()) Symbol.st_name = State.getStringTable().addString(Sym.Name); Symbol.setBindingAndType(Sym.Binding, Sym.Type); + unsigned Index; + if (State.getSN2I().lookupSection(Sym.Section, Index)) { + errs() << "error: Unknown section referenced: '" << Sym.Section + << "' by YAML symbol " << Sym.Name << ".\n"; + exit(1); + } + Symbol.st_shndx = Index; Syms.push_back(Symbol); } |