IR: Disallow function-local metadata attachments

Metadata attachments to instructions cannot be function-local.

This is part of PR21532.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@223574 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Duncan P. N. Exon Smith
2014-12-06 02:29:44 +00:00
parent e1d7711d2f
commit 09ba28c27c
6 changed files with 17 additions and 7 deletions

View File

@ -639,6 +639,8 @@ void Instruction::setMetadata(unsigned KindID, MDNode *Node) {
// Handle the case when we're adding/updating metadata on an instruction.
if (Node) {
assert(!Node->isFunctionLocal() &&
"Function-local metadata cannot be attached to instructions");
LLVMContextImpl::MDMapTy &Info = getContext().pImpl->MetadataStore[this];
assert(!Info.empty() == hasMetadataHashEntry() &&
"HasMetadata bit is wonked");