aboutsummaryrefslogtreecommitdiff
path: root/backend/lib/CodeGen/MachineMetadata.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'backend/lib/CodeGen/MachineMetadata.cpp')
-rw-r--r--backend/lib/CodeGen/MachineMetadata.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/backend/lib/CodeGen/MachineMetadata.cpp b/backend/lib/CodeGen/MachineMetadata.cpp
index 24a04e9..f789a74 100644
--- a/backend/lib/CodeGen/MachineMetadata.cpp
+++ b/backend/lib/CodeGen/MachineMetadata.cpp
@@ -111,4 +111,17 @@ Expected<MachineMetadataInfo> MachineMetadataInfo::clone() const {
return Result;
}
+Expected<void> verifyMachineMetadataReference(MachineMetadataReference Reference,
+ const MachineMetadataInfo &Metadata) {
+ if (!Reference.isValid()) {
+ return makeUnexpected(ErrorCode::VerificationError, "machine metadata reference is invalid");
+ }
+ if (Reference.scope() == MachineMetadataScope::MachineFunction &&
+ Metadata.node(Reference.slot()) == nullptr) {
+ return makeUnexpected(ErrorCode::VerificationError,
+ "machine metadata reference uses an undefined function slot");
+ }
+ return {};
+}
+
} // namespace rcc