================
@@ -145,9 +145,20 @@ class ExprPointeeResolve {
// explicit cast will be checked in `findPointeeToNonConst`
const CastKind kind = ICE->getCastKind();
if (kind == CK_LValueToRValue || kind == CK_DerivedToBase ||
- kind == CK_UncheckedDerivedToBase ||
- (kind == CK_NoOp && (ICE->getType() ==
ICE->getSubExpr()->getType())))
+ kind == CK_UncheckedDerivedToBase)
return resolveExpr(ICE->getSubExpr());
+ if (kind == CK_NoOp) {
+ // Binding `T *` to `T *const &` only adds top-level qualifiers to the
+ // pointer object, so this `CK_NoOp` still refers to the same pointer.
+ const QualType CastType =
+ ICE->getType().getLocalUnqualifiedType().getCanonicalType();
----------------
vbvictor wrote:
ditto below
https://github.com/llvm/llvm-project/pull/190421
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits