From 46216aa97729aa994dce79e75cd25707fb4b7874 Mon Sep 17 00:00:00 2001 From: Arthur Eubanks Date: Fri, 18 Mar 2022 16:49:12 -0700 Subject: [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 --- llvm/lib/Bitcode/Reader/BitcodeReader.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'llvm/lib/Bitcode/Reader/BitcodeReader.cpp') diff --git a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp index afe18c5..034fa58 100644 --- a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp +++ b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp @@ -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]; -- cgit v1.1