[PATCH] D26664: [ObjC] Prevent infinite loops when iterating over redeclaration of a method that was declared in an invalid interface

Erik Pilkington via cfe-commits cfe-commits at lists.llvm.org
Tue Nov 15 09:30:55 PST 2016


erik.pilkington added inline comments.


================
Comment at: lib/AST/DeclObjC.cpp:841
+    return nullptr;
+  if (const auto *Ctx = cast<Decl>(Redecl->getDeclContext()))
+    if (Ctx->isInvalidDecl())
----------------
arphaman wrote:
> mehdi_amini wrote:
> > Either you should use `dyn_cast`, or you should just `cast` but without a `if`
> Thanks! Yeah, this is supposed to be `dyn_cast`.
Why `dyn_cast`? Can't we bank on a DeclContext being a Decl?


================
Comment at: lib/AST/DeclObjC.cpp:888
   }
 
   if (!Redecl && isRedeclaration()) {
----------------
Do you think it would be cleaner to just do the check once here, if Redecl is non-null?


Repository:
  rL LLVM

https://reviews.llvm.org/D26664





More information about the cfe-commits mailing list