[clang] 5f2f390 - [clang][Interp][NFC] Allow Pointer assignment if both are zero
Timm Bäder via cfe-commits
cfe-commits at lists.llvm.org
Mon May 6 23:54:34 PDT 2024
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;
More information about the cfe-commits
mailing list