Charusso added a comment.

In D64374#1577235 <https://reviews.llvm.org/D64374#1577235>, @NoQ wrote:

> Whoops. I underestimated you (:
>
> Ok, anyway, this was my last comment. Great job! Remember to make sure that 
> it works on the actual LLVM, not only on tests; mocked-up test headers are 
> very easy to get wrong.


The only crash-able code was that:

  #0 Calling llvm::unique_dyn_cast

where:

  ProgramStateRef ExprEngine::createTemporaryRegionIfNeeded():
  Assertion `!InitValWithAdjustments.getAs<Loc>() || 
Loc::isLocType(Result->getType()) || Result->getType()->isMemberPointerType()'

because of `cast<>`:

  template <class X, class Y>
  LLVM_NODISCARD inline auto unique_dyn_cast(std::unique_ptr<Y> &Val)
      -> decltype(cast<X>(Val)) {
    if (!isa<X>(Val))
      return nullptr;
    return cast<X>(std::move(Val));
  }

(source: https://llvm.org/doxygen/Casting_8h_source.html)

So we bypass every error with that CXXRecordDecl checking from now. Would we 
like to model that?


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

https://reviews.llvm.org/D64374



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to