summaryrefslogtreecommitdiffstats
path: root/llvm/lib/IR/Metadata.cpp
diff options
context:
space:
mode:
authorAdrian Prantl <aprantl@apple.com>2015-08-20 18:24:02 +0000
committerAdrian Prantl <aprantl@apple.com>2015-08-20 18:24:02 +0000
commitbaf90fc2658bac897abfc3375596d40af53c0521 (patch)
tree828bf4764ee3d5b5491ec821358b0788050895b0 /llvm/lib/IR/Metadata.cpp
parenta317cd2583868c2a21019163be0219a0300518f2 (diff)
downloadbcm5719-llvm-baf90fc2658bac897abfc3375596d40af53c0521.tar.gz
bcm5719-llvm-baf90fc2658bac897abfc3375596d40af53c0521.zip
Fix a bug that caused SimplifyCFG to drop DebugLocs.
Instruction::dropUnknownMetadata(KnownSet) is supposed to preserve all metadata in KnownSet, but the condition for DebugLocs was inverted. Most users of dropUnknownMetadata() actually worked around this by not adding LLVMContext::MD_dbg to their list of KnowIDs. This is now made explicit. llvm-svn: 245589
Diffstat (limited to 'llvm/lib/IR/Metadata.cpp')
-rw-r--r--llvm/lib/IR/Metadata.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/IR/Metadata.cpp b/llvm/lib/IR/Metadata.cpp
index 6ec4a25f51b..08fa7ce3b05 100644
--- a/llvm/lib/IR/Metadata.cpp
+++ b/llvm/lib/IR/Metadata.cpp
@@ -1062,7 +1062,7 @@ void Instruction::dropUnknownMetadata(ArrayRef<unsigned> KnownIDs) {
KnownSet.insert(KnownIDs.begin(), KnownIDs.end());
// Drop debug if needed
- if (KnownSet.erase(LLVMContext::MD_dbg))
+ if (!KnownSet.erase(LLVMContext::MD_dbg))
DbgLoc = DebugLoc();
if (!hasMetadataHashEntry())
OpenPOWER on IntegriCloud