From 184591aeeb5a531f2315c3d7cddcd199c87ecb2c Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Tue, 25 Jan 2022 09:57:26 +0100 Subject: [PATCH] [OpaquePtrs] Deprecate PointerType::getElementType() This deprecates PointerType::getElementType() in favor of Type::getPointerElementType(). The motivation is to make it more apparent when code accesses the pointer element type, because getElementType() may also also refer to at least ArrayType::getElementType() and VectorType::getElementType(). Differential Revision: https://reviews.llvm.org/D117885 --- llvm/include/llvm/IR/DerivedTypes.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/llvm/include/llvm/IR/DerivedTypes.h b/llvm/include/llvm/IR/DerivedTypes.h index 8a1b26e699e32b..f52ce3cde318d6 100644 --- a/llvm/include/llvm/IR/DerivedTypes.h +++ b/llvm/include/llvm/IR/DerivedTypes.h @@ -667,9 +667,11 @@ class PointerType : public Type { unsigned AddressSpace) { if (PT->isOpaque()) return get(PT->getContext(), AddressSpace); - return get(PT->getElementType(), AddressSpace); + return get(PT->PointeeTy, AddressSpace); } + [[deprecated("Pointer element types are deprecated. You can *temporarily* " + "use Type::getPointerElementType() instead")]] Type *getElementType() const { assert(!isOpaque() && "Attempting to get element type of opaque pointer"); return PointeeTy;