diff options
author | Sam Clegg <sbc@chromium.org> | 2018-12-07 19:29:00 +0000 |
---|---|---|
committer | Sam Clegg <sbc@chromium.org> | 2018-12-07 19:29:00 +0000 |
commit | 992fc88111578d04b21ed1f9c5ade82a502423d5 (patch) | |
tree | cd3dd018cbb53c186dd65f6d122e6d68d75fdba6 | |
parent | 48c7b4f0b6ca5dcaaf388e1c7aa90ec72ba4c6b0 (diff) | |
download | bcm5719-llvm-992fc88111578d04b21ed1f9c5ade82a502423d5.tar.gz bcm5719-llvm-992fc88111578d04b21ed1f9c5ade82a502423d5.zip |
[llvm-tapi] Don't try to override SequenceTraits for std::string
For some reason this doesn't seem to work with LLVM_LINK_LLVM_DYLIB
build.
See https://logs.chromium.org/logs/chromium/bb/client.wasm.llvm/linux/37764/+/recipes/steps/LLVM_regression_tests/0/stdout
What is more it seems that overriding these traits for core types
(including std::string) is not supported/recommend by YAMLTraits.h.
See line 1918 which has the assertion:
"only use LLVM_YAML_IS_SEQUENCE_VECTOR for types you control"
Differential Revision: https://reviews.llvm.org/D55381
llvm-svn: 348630
-rw-r--r-- | llvm/lib/TextAPI/ELF/TBEHandler.cpp | 17 | ||||
-rw-r--r-- | llvm/unittests/TextAPI/ELFYAMLTest.cpp | 5 |
2 files changed, 4 insertions, 18 deletions
diff --git a/llvm/lib/TextAPI/ELF/TBEHandler.cpp b/llvm/lib/TextAPI/ELF/TBEHandler.cpp index a3216663729..846f80a8b5b 100644 --- a/llvm/lib/TextAPI/ELF/TBEHandler.cpp +++ b/llvm/lib/TextAPI/ELF/TBEHandler.cpp @@ -126,23 +126,6 @@ template <> struct CustomMappingTraits<std::set<ELFSymbol>> { } }; -/// YAML traits for generic string vectors (i.e. list of needed libraries). -template <> struct SequenceTraits<std::vector<std::string>> { - static size_t size(IO &IO, std::vector<std::string> &List) { - return List.size(); - } - - static std::string &element(IO &IO, std::vector<std::string> &List, - size_t Index) { - if (Index >= List.size()) - List.resize(Index + 1); - return List[Index]; - } - - // Compacts list of needed libraries into a single line. - static const bool flow = true; -}; - /// YAML traits for ELFStub objects. template <> struct MappingTraits<ELFStub> { static void mapping(IO &IO, ELFStub &Stub) { diff --git a/llvm/unittests/TextAPI/ELFYAMLTest.cpp b/llvm/unittests/TextAPI/ELFYAMLTest.cpp index 4616531de98..5b07dfa18c7 100644 --- a/llvm/unittests/TextAPI/ELFYAMLTest.cpp +++ b/llvm/unittests/TextAPI/ELFYAMLTest.cpp @@ -196,7 +196,10 @@ TEST(ElfYamlTextAPI, YAMLWritesNoTBESyms) { "TbeVersion: 1.0\n" "SoName: nosyms.so\n" "Arch: x86_64\n" - "NeededLibs: [ libc.so, libfoo.so, libbar.so ]\n" + "NeededLibs: \n" + " - libc.so\n" + " - libfoo.so\n" + " - libbar.so\n" "Symbols: {}\n" "...\n"; ELFStub Stub; |