aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
diff options
context:
space:
mode:
authorRichard Smith <richard@metafoo.co.uk>2023-07-24 17:34:08 -0700
committerRichard Smith <richard@metafoo.co.uk>2023-07-25 15:59:21 -0700
commit61c7a9140becb19c5b1bc644e54452c6f782f5d5 (patch)
tree0726e7664409b63121afcd8a49c0897285dad7e7 /llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
parent4af01bf95628f8ec674277fd1610eac172598cea (diff)
downloadllvm-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