summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Support/YAMLTraits.cpp
diff options
context:
space:
mode:
authorMichael J. Spencer <bigcheesegs@gmail.com>2015-01-23 21:57:50 +0000
committerMichael J. Spencer <bigcheesegs@gmail.com>2015-01-23 21:57:50 +0000
commit731cae3839fcf6e9809595d5385a5990dbbe9451 (patch)
treec07f3e0339a33a95f2ef830fe4115636ddbae42c /llvm/lib/Support/YAMLTraits.cpp
parentd235df0aaa8bcf75a9c4317443047cd71d839619 (diff)
downloadbcm5719-llvm-731cae3839fcf6e9809595d5385a5990dbbe9451.tar.gz
bcm5719-llvm-731cae3839fcf6e9809595d5385a5990dbbe9451.zip
[YAMLIO] Add support for numeric values in enums.
llvm-svn: 226942
Diffstat (limited to 'llvm/lib/Support/YAMLTraits.cpp')
-rw-r--r--llvm/lib/Support/YAMLTraits.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/llvm/lib/Support/YAMLTraits.cpp b/llvm/lib/Support/YAMLTraits.cpp
index c87790efb8c..fc23f31de33 100644
--- a/llvm/lib/Support/YAMLTraits.cpp
+++ b/llvm/lib/Support/YAMLTraits.cpp
@@ -233,6 +233,13 @@ bool Input::matchEnumScalar(const char *Str, bool) {
return false;
}
+bool Input::matchEnumFallback() {
+ if (ScalarMatchFound)
+ return false;
+ ScalarMatchFound = true;
+ return true;
+}
+
void Input::endEnumScalar() {
if (!ScalarMatchFound) {
setError(CurrentNode, "unknown enumerated scalar");
@@ -508,6 +515,13 @@ bool Output::matchEnumScalar(const char *Str, bool Match) {
return false;
}
+bool Output::matchEnumFallback() {
+ if (EnumerationMatchFound)
+ return false;
+ EnumerationMatchFound = true;
+ return true;
+}
+
void Output::endEnumScalar() {
if (!EnumerationMatchFound)
llvm_unreachable("bad runtime enum value");
OpenPOWER on IntegriCloud