[clang] [clang][Interp] Integral pointers (PR #84159)

Aaron Ballman via cfe-commits cfe-commits at lists.llvm.org
Wed Mar 6 05:55:48 PST 2024


================
@@ -28,11 +28,26 @@ class Block;
 class DeadBlock;
 class Pointer;
 class Context;
+template <unsigned A, bool B> class Integral;
 enum PrimType : unsigned;
 
 class Pointer;
 inline llvm::raw_ostream &operator<<(llvm::raw_ostream &OS, const Pointer &P);
 
+struct BlockPointer {
----------------
AaronBallman wrote:

This is not the first time I've hit this cognitive issue, but `Block` is an existing term of art in the compiler and means something totally different from how we use it in the interpreter. My very first thought was that this was a significant amount of work just to support Objective-C block pointers, why aren't we doing the same thing for member pointers, etc. It took me a while to realize you mean a descriptor for a chunk of memory.

I don't know if others reviewing the interpreter have hit similar issues with "block" or not, so I'm not recommending any changes. But it is something to keep in mind when naming stuff.

https://github.com/llvm/llvm-project/pull/84159


More information about the cfe-commits mailing list