mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-16 00:17:32 +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:
parent
0021a54ae5
commit
d8a0ff34d9
@ -173,6 +173,9 @@ bool MIRParserImpl::parseMachineFunction(yaml::Input &In, Module &M,
|
||||
Functions.insert(std::make_pair(FunctionName, std::move(MF)));
|
||||
if (NoLLVMIR)
|
||||
createDummyFunction(FunctionName, M);
|
||||
else if (!M.getFunction(FunctionName))
|
||||
return error(Twine("function '") + FunctionName +
|
||||
"' isn't defined in the provided LLVM IR");
|
||||
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
|
||||
...
|
Loading…
Reference in New Issue
Block a user