summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Lorenz <arphaman@gmail.com>2015-06-15 22:23:23 +0000
committerAlex Lorenz <arphaman@gmail.com>2015-06-15 22:23:23 +0000
commitfe2aa97babcd6a5c150113efeff0ea0f93e7c688 (patch)
tree62db780249f26f3279f0d29b69615e3f4fd242e0
parent0ff92e6e3e998ed2fe48e302f6296e3552dca45a (diff)
downloadbcm5719-llvm-fe2aa97babcd6a5c150113efeff0ea0f93e7c688.tar.gz
bcm5719-llvm-fe2aa97babcd6a5c150113efeff0ea0f93e7c688.zip
MIR Serialization: Report an error when machine functions have the same name.
This commit reports an error when the MIR parser encounters a machine function with the name that is the same as the name of a different machine function. Reviewers: Duncan P. N. Exon Smith Differential Revision: http://reviews.llvm.org/D10130 llvm-svn: 239774
-rw-r--r--llvm/lib/CodeGen/MIRParser/MIRParser.cpp3
-rw-r--r--llvm/test/CodeGen/MIR/machine-function-redefinition-error.mir10
2 files changed, 13 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/MIRParser/MIRParser.cpp b/llvm/lib/CodeGen/MIRParser/MIRParser.cpp
index 69ecb923ed7..19e845fc01f 100644
--- a/llvm/lib/CodeGen/MIRParser/MIRParser.cpp
+++ b/llvm/lib/CodeGen/MIRParser/MIRParser.cpp
@@ -156,6 +156,9 @@ bool MIRParserImpl::parseMachineFunction(yaml::Input &In) {
if (In.error())
return true;
auto FunctionName = MF->Name;
+ if (Functions.find(FunctionName) != Functions.end())
+ return error(Twine("redefinition of machine function '") + FunctionName +
+ "'");
Functions.insert(std::make_pair(FunctionName, std::move(MF)));
return false;
}
diff --git a/llvm/test/CodeGen/MIR/machine-function-redefinition-error.mir b/llvm/test/CodeGen/MIR/machine-function-redefinition-error.mir
new file mode 100644
index 00000000000..be84161b563
--- /dev/null
+++ b/llvm/test/CodeGen/MIR/machine-function-redefinition-error.mir
@@ -0,0 +1,10 @@
+# RUN: not llc -start-after branch-folder -stop-after branch-folder -o /dev/null %s 2>&1 | FileCheck %s
+# This test ensures that the machine function errors are reported correctly.
+
+---
+name: foo
+...
+---
+# CHECK: redefinition of machine function 'foo'
+name: foo
+...
OpenPOWER on IntegriCloud