Author: Timm Bäder Date: 2024-05-07T08:53:45+02:00 New Revision: 5f2f3900138cc519e1cb807e99920337eede2b6c
URL: https://github.com/llvm/llvm-project/commit/5f2f3900138cc519e1cb807e99920337eede2b6c DIFF: https://github.com/llvm/llvm-project/commit/5f2f3900138cc519e1cb807e99920337eede2b6c.diff LOG: [clang][Interp][NFC] Allow Pointer assignment if both are zero ... even if the storage types are different. Added: Modified: clang/lib/AST/Interp/Pointer.cpp Removed: ################################################################################ diff --git a/clang/lib/AST/Interp/Pointer.cpp b/clang/lib/AST/Interp/Pointer.cpp index 5ef31671ae7be..12bef73f7e21c 100644 --- a/clang/lib/AST/Interp/Pointer.cpp +++ b/clang/lib/AST/Interp/Pointer.cpp @@ -63,9 +63,8 @@ Pointer::~Pointer() { } void Pointer::operator=(const Pointer &P) { - if (!this->isIntegralPointer() || !P.isBlockPointer()) - assert(P.StorageKind == StorageKind); + assert(P.StorageKind == StorageKind || (this->isZero() && P.isZero())); bool WasBlockPointer = isBlockPointer(); StorageKind = P.StorageKind; @@ -92,7 +91,7 @@ void Pointer::operator=(const Pointer &P) { void Pointer::operator=(Pointer &&P) { if (!this->isIntegralPointer() || !P.isBlockPointer()) - assert(P.StorageKind == StorageKind); + assert(P.StorageKind == StorageKind || (this->isZero() && P.isZero())); bool WasBlockPointer = isBlockPointer(); StorageKind = P.StorageKind; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits