summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans Wennborg <hans@hanshq.net>2013-09-11 01:59:32 +0000
committerHans Wennborg <hans@hanshq.net>2013-09-11 01:59:32 +0000
commit90c782a9ca9bc9325e9a1f075890311c15dfeb0e (patch)
tree04d5d4e4616e94efbde0dc511e09d2f1b83ef0e7
parentabaa85d88d13f6efa99c61d206155678ccd5f118 (diff)
Revert "YAMLIO: Fix string quoting logic." (r190469)
It was turning the buildbots red. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190480 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Support/YAMLTraits.cpp12
-rw-r--r--unittests/Support/YAMLIOTest.cpp57
2 files changed, 2 insertions, 67 deletions
diff --git a/lib/Support/YAMLTraits.cpp b/lib/Support/YAMLTraits.cpp
index d0e4b1b902d..cf19509ee88 100644
--- a/lib/Support/YAMLTraits.cpp
+++ b/lib/Support/YAMLTraits.cpp
@@ -509,16 +509,8 @@ void Output::endBitSetScalar() {
void Output::scalarString(StringRef &S) {
this->newLineCheck();
-
- if (S.empty()) {
- // Print '' for the empty string because leaving the field empty is not
- // allowed.
- this->outputUpToEndOfLine("''");
- return;
- }
- if (!strchr("'`@\"", S.front()) && S.find('\n') == StringRef::npos) {
- // Plain string cannot start with double quote or single quote. Backquote
- // and atsign are reserved characters. Newline is not allowed.
+ if (S.find('\n') == StringRef::npos) {
+ // No embedded new-line chars, just print string.
this->outputUpToEndOfLine(S);
return;
}
diff --git a/unittests/Support/YAMLIOTest.cpp b/unittests/Support/YAMLIOTest.cpp
index 8ae05f4b606..43d8397d1ed 100644
--- a/unittests/Support/YAMLIOTest.cpp
+++ b/unittests/Support/YAMLIOTest.cpp
@@ -273,64 +273,7 @@ TEST(YAMLIO, TestReadWriteBuiltInTypes) {
}
}
-struct StringTypes {
- llvm::StringRef str1;
- llvm::StringRef str2;
- llvm::StringRef str3;
- llvm::StringRef str4;
- llvm::StringRef str5;
-};
-namespace llvm {
-namespace yaml {
- template <>
- struct MappingTraits<StringTypes> {
- static void mapping(IO &io, StringTypes& st) {
- io.mapRequired("str1", st.str1);
- io.mapRequired("str2", st.str2);
- io.mapRequired("str3", st.str3);
- io.mapRequired("str4", st.str4);
- io.mapRequired("str5", st.str5);
- }
- };
-}
-}
-
-TEST(YAMLIO, TestReadWriteStringTypes) {
- std::string intermediate;
- {
- StringTypes map;
- map.str1 = "'aaa";
- map.str2 = "\"bbb";
- map.str3 = "`ccc";
- map.str4 = "@ddd";
- map.str5 = "";
-
- llvm::raw_string_ostream ostr(intermediate);
- Output yout(ostr);
- yout << map;
- }
-
- llvm::StringRef flowOut(intermediate);
- EXPECT_NE(llvm::StringRef::npos, flowOut.find("'''aaa"));
- EXPECT_NE(llvm::StringRef::npos, flowOut.find("'\"bbb'"));
- EXPECT_NE(llvm::StringRef::npos, flowOut.find("'`ccc'"));
- EXPECT_NE(llvm::StringRef::npos, flowOut.find("'@ddd'"));
- EXPECT_NE(llvm::StringRef::npos, flowOut.find("''\n"));
-
- {
- Input yin(intermediate);
- StringTypes map;
- yin >> map;
-
- EXPECT_FALSE(yin.error());
- EXPECT_TRUE(map.str1.equals("'aaa"));
- EXPECT_TRUE(map.str2.equals("\"bbb"));
- EXPECT_TRUE(map.str3.equals("`ccc"));
- EXPECT_TRUE(map.str4.equals("@ddd"));
- EXPECT_TRUE(map.str5.equals(""));
- }
-}
//===----------------------------------------------------------------------===//
// Test ScalarEnumerationTraits