[PATCH] D138426: Fix #58958 on github
Alexey Kreshchuk via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Nov 21 13:11:07 PST 2022
krsch added inline comments.
================
Comment at: clang/lib/Sema/SemaFixItUtils.cpp:135-140
+ // Do no take address of const pointer to get void*
+ const PointerType *FromPtrTy = dyn_cast<PointerType>(FromQTy);
+ const PointerType *ToPtrTy = dyn_cast<PointerType>(ToQTy);
+ if (FromPtrTy && FromPtrTy->getPointeeType().isConstQualified() &&
+ ToPtrTy->isVoidPointerType())
+ return false;
----------------
dblaikie wrote:
> Do we need to check the constness here? What other cases does it come up? Like maybe if it's volatile we'd want to do the same thing?
For volatile pointers the same bad suggestion appears. Maybe I should remove the isConstQualified check as IIRC all non-const non-volatile pointers can be implicitly converted to void* so the suggestion would not appear for them. Probably any suggestion to change T* to T** for casting to void* is unlikely to be correct.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D138426/new/
https://reviews.llvm.org/D138426
More information about the cfe-commits
mailing list