mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-09-30 22:18:46 +00:00
MIR Parser: Report an error when a machine function doesn't have a corresponding function.
This commit reports an error when a machine function from a MIR file that contains LLVM IR can't find a function with the same name in the loaded LLVM IR module. Reviewers: Duncan P. N. Exon Smith Differential Revision: http://reviews.llvm.org/D10468 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239831 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -173,6 +173,9 @@ bool MIRParserImpl::parseMachineFunction(yaml::Input &In, Module &M,
|
|||||||
Functions.insert(std::make_pair(FunctionName, std::move(MF)));
|
Functions.insert(std::make_pair(FunctionName, std::move(MF)));
|
||||||
if (NoLLVMIR)
|
if (NoLLVMIR)
|
||||||
createDummyFunction(FunctionName, M);
|
createDummyFunction(FunctionName, M);
|
||||||
|
else if (!M.getFunction(FunctionName))
|
||||||
|
return error(Twine("function '") + FunctionName +
|
||||||
|
"' isn't defined in the provided LLVM IR");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
19
test/CodeGen/MIR/machine-function-missing-function.mir
Normal file
19
test/CodeGen/MIR/machine-function-missing-function.mir
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
# RUN: not llc -start-after branch-folder -stop-after branch-folder -o /dev/null %s 2>&1 | FileCheck %s
|
||||||
|
# This test ensures that an error is reported when the mir file has LLVM IR and
|
||||||
|
# one of the machine functions has a name that doesn't match any function in
|
||||||
|
# the LLVM IR.
|
||||||
|
|
||||||
|
--- |
|
||||||
|
|
||||||
|
define i32 @foo() {
|
||||||
|
ret i32 0
|
||||||
|
}
|
||||||
|
|
||||||
|
...
|
||||||
|
---
|
||||||
|
name: foo
|
||||||
|
...
|
||||||
|
---
|
||||||
|
# CHECK: function 'faa' isn't defined in the provided LLVM IR
|
||||||
|
name: faa
|
||||||
|
...
|
Reference in New Issue
Block a user