diff options
author | Arthur Eubanks <aeubanks@google.com> | 2021-11-09 14:23:04 -0800 |
---|---|---|
committer | Arthur Eubanks <aeubanks@google.com> | 2021-11-09 14:27:55 -0800 |
commit | 05963a3d66047695aaabd47a161fced7687135db (patch) | |
tree | ac297edae6978c4badda5489f054f350e649f012 /llvm/lib/Bitcode/Reader/MetadataLoader.cpp | |
parent | 50082e1882ae7fe101e563c5e18a27e0804d517b (diff) | |
download | llvm-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.cpp | 13 |
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; } |