[PATCH] D70849: [AST] Traverse the class type loc inside the member pointer type loc.

Sterling Augustine via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Dec 5 16:23:38 PST 2019


saugustine added inline comments.


================
Comment at: clang/include/clang/AST/RecursiveASTVisitor.h:1169
 DEF_TRAVERSE_TYPELOC(MemberPointerType, {
-  TRY_TO(TraverseType(QualType(TL.getTypePtr()->getClass(), 0)));
+  if (auto *TSI = TL.getClassTInfo())
+    TRY_TO(TraverseTypeLoc(TSI->getTypeLoc()));
----------------
ilya-biryukov wrote:
> Can this actually happen in practice?
> Did we try doing **only** `TRY_TO(TraverseTypeLoc(TSI->getTypeLoc()))` and seeing whether this fails?
> 
> The code in `MemberPointerTypeLoc` suggests this can happen, but would be interesting to find examples when it happens.
This can happen when traversing a TypeNodeLoc, and the assertion will fail. I'm reverting this change for now.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D70849/new/

https://reviews.llvm.org/D70849





More information about the cfe-commits mailing list