aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Bitcode/Reader/BitcodeReader.cpp
diff options
context:
space:
mode:
authorArthur Eubanks <aeubanks@google.com>2022-03-18 16:49:12 -0700
committerArthur Eubanks <aeubanks@google.com>2022-03-21 09:19:26 -0700
commit46216aa97729aa994dce79e75cd25707fb4b7874 (patch)
tree1cd5c735bef03138d48c97b5e86633983c57d6f3 /llvm/lib/Bitcode/Reader/BitcodeReader.cpp
parent800ac15dcce48d4a95e3349e9c9509e22905b4f6 (diff)
downloadllvm-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.cpp4
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];