Support more Atom attributes. Add more test cases to lld-core
llvm-svn: 147571
diff --git a/lld/lib/Core/YamlKeyValues.h b/lld/lib/Core/YamlKeyValues.h
new file mode 100644
index 0000000..c8890bd
--- /dev/null
+++ b/lld/lib/Core/YamlKeyValues.h
@@ -0,0 +1,83 @@
+//===- Core/YamlKeyValues.h - Reads YAML ----------------------------------===//
+//
+// The LLVM Linker
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLD_CORE_YAML_KEY_VALUES_H_
+#define LLD_CORE_YAML_KEY_VALUES_H_
+
+#include "lld/Core/Atom.h"
+
+
+namespace lld {
+namespace yaml {
+
+class KeyValues {
+public:
+ static const char* const nameKeyword;
+ static const char* const sectionNameKeyword;
+ static const char* const contentKeyword;
+ static const char* const sizeKeyword;
+
+
+ static const char* const scopeKeyword;
+ static const Atom::Scope scopeDefault;
+ static Atom::Scope scope(const char*);
+ static const char* scope(Atom::Scope);
+
+ static const char* const definitionKeyword;
+ static const Atom::Definition definitionDefault;
+ static Atom::Definition definition(const char*);
+ static const char* definition(Atom::Definition);
+
+ static const char* const contentTypeKeyword;
+ static const Atom::ContentType contentTypeDefault;
+ static Atom::ContentType contentType(const char*);
+ static const char* contentType(Atom::ContentType);
+
+ static const char* const deadStripKindKeyword;
+ static const Atom::DeadStripKind deadStripKindDefault;
+ static Atom::DeadStripKind deadStripKind(const char*);
+ static const char* deadStripKind(Atom::DeadStripKind);
+
+ static const char* const sectionChoiceKeyword;
+ static const Atom::SectionChoice sectionChoiceDefault;
+ static Atom::SectionChoice sectionChoice(const char*);
+ static const char* sectionChoice(Atom::SectionChoice);
+
+ static const char* const internalNameKeyword;
+ static const bool internalNameDefault;
+ static bool internalName(const char*);
+ static const char* internalName(bool);
+
+ static const char* const mergeDuplicatesKeyword;
+ static const bool mergeDuplicatesDefault;
+ static bool mergeDuplicates(const char*);
+ static const char* mergeDuplicates(bool);
+
+ static const char* const autoHideKeyword;
+ static const bool autoHideDefault;
+ static bool autoHide(const char*);
+ static const char* autoHide(bool);
+
+ static const char* const isThumbKeyword;
+ static const bool isThumbDefault;
+ static bool isThumb(const char*);
+ static const char* isThumb(bool);
+
+ static const char* const isAliasKeyword;
+ static const bool isAliasDefault;
+ static bool isAlias(const char*);
+ static const char* isAlias(bool);
+
+};
+
+} // namespace yaml
+} // namespace lld
+
+#endif // LLD_CORE_YAML_KEY_VALUES_H_
+