aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Bitcode/Reader/MetadataLoader.cpp
diff options
context:
space:
mode:
authorArthur Eubanks <aeubanks@google.com>2021-11-09 14:23:04 -0800
committerArthur Eubanks <aeubanks@google.com>2021-11-09 14:27:55 -0800
commit05963a3d66047695aaabd47a161fced7687135db (patch)
treeac297edae6978c4badda5489f054f350e649f012 /llvm/lib/Bitcode/Reader/MetadataLoader.cpp
parent50082e1882ae7fe101e563c5e18a27e0804d517b (diff)
downloadllvm-05963a3d66047695aaabd47a161fced7687135db.zip
llvm-05963a3d66047695aaabd47a161fced7687135db.tar.gz
llvm-05963a3d66047695aaabd47a161fced7687135db.tar.bz2
Revert "[DebugInfo] Enforce implicit constraints on `distinct` MDNodes"
This reverts commit ee7652569854af567ba83e5255d70e80cc8619a1. Causes crashes, see comments in D104827.
Diffstat (limited to 'llvm/lib/Bitcode/Reader/MetadataLoader.cpp')
-rw-r--r--llvm/lib/Bitcode/Reader/MetadataLoader.cpp13
1 files changed, 4 insertions, 9 deletions
diff --git a/llvm/lib/Bitcode/Reader/MetadataLoader.cpp b/llvm/lib/Bitcode/Reader/MetadataLoader.cpp
index 4151e02..15e2386b 100644
--- a/llvm/lib/Bitcode/Reader/MetadataLoader.cpp
+++ b/llvm/lib/Bitcode/Reader/MetadataLoader.cpp
@@ -554,7 +554,7 @@ class MetadataLoader::MetadataLoaderImpl {
}
/// Upgrade the expression from previous versions.
- Error upgradeDIExpression(uint64_t FromVersion, bool &IsDistinct,
+ Error upgradeDIExpression(uint64_t FromVersion,
MutableArrayRef<uint64_t> &Expr,
SmallVectorImpl<uint64_t> &Buffer) {
auto N = Expr.size();
@@ -628,9 +628,6 @@ class MetadataLoader::MetadataLoaderImpl {
LLVM_FALLTHROUGH;
}
case 3:
- IsDistinct = false;
- LLVM_FALLTHROUGH;
- case 4:
// Up-to-date!
break;
}
@@ -2005,13 +2002,11 @@ Error MetadataLoader::MetadataLoaderImpl::parseOneMetadata(
auto Elts = MutableArrayRef<uint64_t>(Record).slice(1);
SmallVector<uint64_t, 6> Buffer;
- if (Error Err = upgradeDIExpression(Version, IsDistinct, Elts, Buffer))
+ if (Error Err = upgradeDIExpression(Version, Elts, Buffer))
return Err;
- if (IsDistinct)
- return error("Invalid record");
-
- MetadataList.assignValue(DIExpression::get(Context, Elts), NextMetadataNo);
+ MetadataList.assignValue(
+ GET_OR_DISTINCT(DIExpression, (Context, Elts)), NextMetadataNo);
NextMetadataNo++;
break;
}