diff options
author | Arthur Eubanks <aeubanks@google.com> | 2022-03-18 16:49:12 -0700 |
---|---|---|
committer | Arthur Eubanks <aeubanks@google.com> | 2022-03-21 09:19:26 -0700 |
commit | 46216aa97729aa994dce79e75cd25707fb4b7874 (patch) | |
tree | 1cd5c735bef03138d48c97b5e86633983c57d6f3 /llvm/lib/Bitcode/Reader/BitcodeReader.cpp | |
parent | 800ac15dcce48d4a95e3349e9c9509e22905b4f6 (diff) | |
download | llvm-46216aa97729aa994dce79e75cd25707fb4b7874.zip llvm-46216aa97729aa994dce79e75cd25707fb4b7874.tar.gz llvm-46216aa97729aa994dce79e75cd25707fb4b7874.tar.bz2 |
[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
Diffstat (limited to 'llvm/lib/Bitcode/Reader/BitcodeReader.cpp')
-rw-r--r-- | llvm/lib/Bitcode/Reader/BitcodeReader.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
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]; |