diff options
author | Richard Smith <richard@metafoo.co.uk> | 2023-07-24 17:34:08 -0700 |
---|---|---|
committer | Richard Smith <richard@metafoo.co.uk> | 2023-07-25 15:59:21 -0700 |
commit | 61c7a9140becb19c5b1bc644e54452c6f782f5d5 (patch) | |
tree | 0726e7664409b63121afcd8a49c0897285dad7e7 /llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp | |
parent | 4af01bf95628f8ec674277fd1610eac172598cea (diff) | |
download | llvm-61c7a9140becb19c5b1bc644e54452c6f782f5d5.zip llvm-61c7a9140becb19c5b1bc644e54452c6f782f5d5.tar.gz llvm-61c7a9140becb19c5b1bc644e54452c6f782f5d5.tar.bz2 |
Commit to a primary definition for a class when we load its first
member.
Previously, we wouldn't do this if the first member loaded is within a
definition that's added to a class via an update record, which happens
when template instantiation adds a class definition to a declaration
that was imported from an AST file.
This would lead to classes having member functions whose getParent
returned a class declaration that wasn't the primary definition, which
in turn caused the vtable builder to build broken vtables.
I don't yet have a reduced testcase for the wrong-code bug here, because
the setup required to get us into the broken state is very subtle, but
have confirmed that this fixes it.
Diffstat (limited to 'llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp')
0 files changed, 0 insertions, 0 deletions