[PATCH] D50003: Sema: Fix explicit address space cast involving void pointers

Yaxun Liu via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Aug 2 05:44:42 PDT 2018


yaxunl added inline comments.


================
Comment at: lib/Sema/SemaCast.cpp:1050
+         SrcType->getAs<PointerType>()->getPointeeType().getAddressSpace() !=
+             DestType->getAs<PointerType>()->getPointeeType().getAddressSpace();
+}
----------------
rjmccall wrote:
> yaxunl wrote:
> > rjmccall wrote:
> > > I know the code was like this before, but please rewrite this to just use `getAs<PointerType>()` instead of doing the separate `isPointerType()` check.
> > IsAddressSpaceConversion is also called in line 2218 of the same file, where SrcType or DestType may not be pointer type.
> `getAs` is a query; it returns null if the type isn't of the target type.
How about 

```
auto *SrcPtrType = SrcType->getAs<PointerType>();
if (!SrcPtrType )
  return false;
auto *DestPtrType = DestType->getAs<PointerType>();
if (!DestPtrType)
  return false;
return SrcPtrType->getPointeeType().getAddressSpace() !=
             DestPtrType->getPointeeType().getAddressSpace();
```


https://reviews.llvm.org/D50003





More information about the cfe-commits mailing list