================ @@ -3610,7 +3611,7 @@ class MemberPointerType : public Type, public llvm::FoldingSetNode { } void Profile(llvm::FoldingSetNodeID &ID) { - Profile(ID, getPointeeType(), getQualifier(), getMostRecentCXXRecordDecl()); + Profile(ID, getPointeeType(), getQualifier(), getCXXRecordDecl()); ---------------- ilya-biryukov wrote:
> Hmm... then I'm surprised that this patch is needed at all for the purposes > of non-determinism My theory is that non-determinism is caused by side-effects in the deserialization logic that runs behind `getMostRecentCXXRecordDecl()`. We probably just get unlucky with rehashing points at different times for the hash table (`FoldingSet`) that makes us either call or not call `getMostRecentCXXRecordDecl`. It is not a new issue, just rare and now getting surfaced by the new place where `getMostRecentCXXRecordDecl` is called. https://github.com/llvm/llvm-project/pull/137910 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits