diff options
Diffstat (limited to 'llvm/lib/Support/YAMLTraits.cpp')
-rw-r--r-- | llvm/lib/Support/YAMLTraits.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/llvm/lib/Support/YAMLTraits.cpp b/llvm/lib/Support/YAMLTraits.cpp index 5f0cedc71829..9ac7c65e19f7 100644 --- a/llvm/lib/Support/YAMLTraits.cpp +++ b/llvm/lib/Support/YAMLTraits.cpp @@ -166,6 +166,8 @@ bool Input::preflightKey(const char *Key, bool Required, bool, bool &UseDefault, if (!MN) { if (Required || !isa<EmptyHNode>(CurrentNode)) setError(CurrentNode, "not a mapping"); + else + UseDefault = true; return false; } MN->ValidKeys.push_back(Key); @@ -738,7 +740,7 @@ bool Output::canElideEmptySequence() { // the whole key/value can be not written. But, that produces wrong yaml // if the key/value is the only thing in the map and the map is used in // a sequence. This detects if the this sequence is the first key/value - // in map that itself is embedded in a sequnce. + // in map that itself is embedded in a sequence. if (StateStack.size() < 2) return true; if (StateStack.back() != inMapFirstKey) @@ -876,12 +878,12 @@ StringRef ScalarTraits<StringRef>::input(StringRef Scalar, void *, } void ScalarTraits<std::string>::output(const std::string &Val, void *, - raw_ostream &Out) { + raw_ostream &Out) { Out << Val; } StringRef ScalarTraits<std::string>::input(StringRef Scalar, void *, - std::string &Val) { + std::string &Val) { Val = Scalar.str(); return StringRef(); } |