[llvm] r348560 - Revert "[llvm-tapi] Don't override SequenceTraits for std::string"

Armando Montanez via llvm-commits llvm-commits at lists.llvm.org
Thu Dec 6 17:31:28 PST 2018


Author: amontanez
Date: Thu Dec  6 17:31:28 2018
New Revision: 348560

URL: http://llvm.org/viewvc/llvm-project?rev=348560&view=rev
Log:
Revert "[llvm-tapi] Don't override SequenceTraits for std::string"

Revert r348551 since it triggered some warnings that don't appear to have a quick fix.

Modified:
    llvm/trunk/lib/TextAPI/ELF/TBEHandler.cpp

Modified: llvm/trunk/lib/TextAPI/ELF/TBEHandler.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/TextAPI/ELF/TBEHandler.cpp?rev=348560&r1=348559&r2=348560&view=diff
==============================================================================
--- llvm/trunk/lib/TextAPI/ELF/TBEHandler.cpp (original)
+++ llvm/trunk/lib/TextAPI/ELF/TBEHandler.cpp Thu Dec  6 17:31:28 2018
@@ -18,8 +18,6 @@ using namespace llvm;
 using namespace llvm::elfabi;
 
 LLVM_YAML_STRONG_TYPEDEF(ELFArch, ELFArchMapper)
-LLVM_YAML_STRONG_TYPEDEF(std::string, ELFNeededEntry)
-LLVM_YAML_IS_FLOW_SEQUENCE_VECTOR(ELFNeededEntry)
 
 namespace llvm {
 namespace yaml {
@@ -128,23 +126,21 @@ template <> struct CustomMappingTraits<s
   }
 };
 
-/// YAML traits for ELFNeededEntry. This is required to enable flow mapping on
-/// NeededLibs.
-template <> struct ScalarTraits<ELFNeededEntry> {
-  static void output(const ELFNeededEntry &Value, void *,
-                     llvm::raw_ostream &Out) {
-    Out << Value.value;
+/// 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 StringRef input(StringRef Scalar, void *, ELFNeededEntry &Value) {
-    Value = Scalar.str();
-
-    // Returning empty StringRef indicates successful parse.
-    return StringRef();
+  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];
   }
 
-  // Don't place quotation marks around needed entries.
-  static QuotingType mustQuote(StringRef) { return QuotingType::None; }
+  // Compacts list of needed libraries into a single line.
+  static const bool flow = true;
 };
 
 /// YAML traits for ELFStub objects.
@@ -155,8 +151,7 @@ template <> struct MappingTraits<ELFStub
     IO.mapRequired("TbeVersion", Stub.TbeVersion);
     IO.mapRequired("SoName", Stub.SoName);
     IO.mapRequired("Arch", (ELFArchMapper &)Stub.Arch);
-    IO.mapOptional("NeededLibs",
-                   (std::vector<ELFNeededEntry> &)Stub.NeededLibs);
+    IO.mapOptional("NeededLibs", Stub.NeededLibs);
     IO.mapRequired("Symbols", Stub.Symbols);
   }
 };




More information about the llvm-commits mailing list