[OpaquePointers][BitcodeReader] Enable -opaque-pointers if we see an opaque pointer type

This allows us to more easily test opaque pointers e.g. in the case of
ThinLTO where we only have to pass -opaque-pointers to the frontend.

Reviewed By: #opaque-pointers, nikic

Differential Revision: https://reviews.llvm.org/D122048
This commit is contained in:
Arthur Eubanks
2022-03-18 16:49:12 -07:00
parent 800ac15dcc
commit 46216aa977
2 changed files with 4 additions and 1 deletions

View File

@@ -1883,7 +1883,9 @@ Error BitcodeReader::parseTypeTableBody() {
case bitc::TYPE_CODE_OPAQUE_POINTER: { // OPAQUE_POINTER: [addrspace]
if (Record.size() != 1)
return error("Invalid opaque pointer record");
if (Context.supportsTypedPointers())
if (LLVM_UNLIKELY(!Context.hasSetOpaquePointersValue())) {
Context.enableOpaquePointers();
} else if (Context.supportsTypedPointers())
return error(
"Opaque pointers are only supported in -opaque-pointers mode");
unsigned AddressSpace = Record[0];