LTO: always parse modules in opaque pointer mode.
authorTim Northover <tnorthover@apple.com>
Tue, 13 Dec 2022 09:10:56 +0000 (09:10 +0000)
committerTim Northover <tnorthover@apple.com>
Wed, 14 Dec 2022 14:13:08 +0000 (14:13 +0000)
commit8ba9a5218782fa4f94b5c516d513a4259992c254
tree67f5817cc45d88f00443b2f361fa1638dce86db0
parent08b8adc656cd32f16814bbdb9df33c4db6e6a55a
LTO: always parse modules in opaque pointer mode.

Once an LLVMContext has been told it needs to track pointer types, it can no
longer be used to parse opaque modules. However, we are likely  (at least for a
while) to have old LTO .o files in the SDK that need to interoperate with
just-generated ones, so deciding opaqueness based on the first module read
causes linker failures.

This makes the llvm-c LTO interface parse any object it sees in opaque mode,
even if type data is present, which guarantees compatibility.
llvm/tools/lto/lto.cpp