================ @@ -2437,9 +2437,17 @@ inline bool Destroy(InterpState &S, CodePtr OpPC, uint32_t I) { const Pointer &Ptr = S.Current->getLocalPointer(Local.Offset); if (Ptr.getLifetime() == Lifetime::Ended) { - auto *D = cast<NamedDecl>(Ptr.getFieldDesc()->asDecl()); - S.FFDiag(D->getLocation(), diag::note_constexpr_destroy_out_of_lifetime) - << D->getNameAsString(); + // Try to use the declaration for better diagnostics + if (const Decl *D = Ptr.getDeclDesc()->asDecl()) { ---------------- shafik wrote:
Why the switch from `getFieldDesc` to `getDeclDesc` https://github.com/llvm/llvm-project/pull/154695 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits