This is an archive of the discontinued LLVM Phabricator instance.

C++20] [Modules] [Serialization] Deserialize LValuePathSerializationHelper's type properly
ClosedPublic

Authored by ChuanqiXu on Dec 6 2022, 2:24 AM.

Details

Summary

Close https://github.com/llvm/llvm-project/issues/58716.

Tested with libcxx's modules build.

When we read the type of
LValuePathSerializationHelper, we didn't read the correct type. We read
the element type as its name suggests. But the problem here is that it
looks like that both the usage and serialization use its type as the
top level type. So here is the mismatch. And the original contributor is not
active now. So we can't know his original idea.

Actually, the type of LValuePathSerializationHelper is never used after
Deserialization without the assertion. So it doesn't matter for the
release users. And this patch shouldn't change the behavior too. So this patch
should be good or at least not bad.

Diff Detail

Event Timeline

ChuanqiXu created this revision.Dec 6 2022, 2:24 AM
Herald added a project: Restricted Project. · View Herald TranscriptDec 6 2022, 2:24 AM
ChuanqiXu requested review of this revision.Dec 6 2022, 2:24 AM
erichkeane accepted this revision.Dec 6 2022, 6:06 AM
This revision is now accepted and ready to land.Dec 6 2022, 6:06 AM
This revision was landed with ongoing or failed builds.Dec 6 2022, 6:53 PM
This revision was automatically updated to reflect the committed changes.
Herald added a project: Restricted Project. · View Herald TranscriptDec 6 2022, 6:53 PM
Herald added a subscriber: cfe-commits. · View Herald Transcript