summaryrefslogtreecommitdiffstats
path: root/llvm/lib/ObjectYAML
diff options
context:
space:
mode:
authorChris Bieneman <beanz@apple.com>2016-06-28 21:10:26 +0000
committerChris Bieneman <beanz@apple.com>2016-06-28 21:10:26 +0000
commit92b2e8a2958e22dbec732b34d828ebe6a9f82b59 (patch)
tree45534734f85c759e4c512c37b679bad823ed177f /llvm/lib/ObjectYAML
parent347db3e18ee7375cf038a8173880466fd0fe6312 (diff)
downloadbcm5719-llvm-92b2e8a2958e22dbec732b34d828ebe6a9f82b59.tar.gz
bcm5719-llvm-92b2e8a2958e22dbec732b34d828ebe6a9f82b59.zip
[YAML] Fix YAML tags appearing before the start of sequence elements
Our existing yaml::Output code writes tags immediately when mapTag is called, without any state handling. This results in tags on sequence elements being written before the element itself. For example, we see this: SomeArray: !elem_type - key1: 1 key2: 2 !elem_type2 - key3: 3 key4: 4 We should instead see: SomeArray: - !elem_type key1: 1 key2: 2 - !elem_type2 key3: 3 key4: 4 Our reader handles reading properly, so this bug only impacts writing yaml sequences with tagged elements. As a test for this I've modified the Mach-O yaml encoding to allways apply the !mach-o tag when encoding MachOYAML::Object entries. This results in the !mach-o tag appearing as expected in dumped fat files. llvm-svn: 274067
Diffstat (limited to 'llvm/lib/ObjectYAML')
-rw-r--r--llvm/lib/ObjectYAML/MachOYAML.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/ObjectYAML/MachOYAML.cpp b/llvm/lib/ObjectYAML/MachOYAML.cpp
index 0a303a6e739..d819e80836c 100644
--- a/llvm/lib/ObjectYAML/MachOYAML.cpp
+++ b/llvm/lib/ObjectYAML/MachOYAML.cpp
@@ -91,8 +91,8 @@ void MappingTraits<MachOYAML::Object>::mapping(IO &IO,
// For Fat files there will be a different tag so they can be differentiated.
if (!IO.getContext()) {
IO.setContext(&Object);
- IO.mapTag("!mach-o", true);
}
+ IO.mapTag("!mach-o", true);
IO.mapRequired("FileHeader", Object.Header);
IO.mapOptional("LoadCommands", Object.LoadCommands);
IO.mapOptional("LinkEditData", Object.LinkEdit);
OpenPOWER on IntegriCloud