usx95 wrote: I ran this change internally and noticed a crash for ```cpp template <typename T> class Foo { public: template <typename U = T> bool operator==(const Foo& other) const; };
bool x = Foo<int>{} == Foo<int>{}; ``` <details> <summary>stacktrace</summary> ``` F0000 00:00:1700029943.315247 8971 logging.cc:57] assert.h assertion failed at third_party/llvm/llvm-project/llvm/include/llvm/ADT/ArrayRef.h:443 in T &llvm::MutableArrayRef<clang::ImplicitConversionSequence>::operator[](size_t) const [T = clang::ImplicitConversionSequence]: Index < this->size() && "Invalid index!" *** Check failure stack trace: *** @ 0x55598a5f6a44 absl::log_internal::LogMessage::SendToLog() @ 0x55598a5f68a2 absl::log_internal::LogMessage::Flush() @ 0x55598a5f6da9 absl::log_internal::LogMessageFatal::~LogMessageFatal() @ 0x55598a5e70c4 __assert_fail @ 0x555986a73209 clang::Sema::CheckNonDependentConversions() @ 0x555986a9db52 llvm::function_ref<>::callback_fn<>() @ 0x555986c6bc08 llvm::function_ref<>::callback_fn<>() @ 0x555986bf70b3 clang::Sema::FinishTemplateArgumentDeduction() @ 0x555986c6bb56 llvm::function_ref<>::callback_fn<>() @ 0x5559862dbc2f clang::Sema::runWithSufficientStackSpace() @ 0x555986bf8f8d clang::Sema::DeduceTemplateArguments() @ 0x555986a7229a clang::Sema::AddMethodTemplateCandidate() @ 0x555986a72c6f clang::Sema::AddMethodCandidate() @ 0x555986a751dd clang::Sema::AddMemberOperatorCandidates() @ 0x555986a881f6 clang::Sema::LookupOverloadedBinOp() @ 0x555986a88673 clang::Sema::CreateOverloadedBinOp() @ 0x5559866ff91a BuildOverloadedBinOp() @ 0x5559866c643e clang::Sema::ActOnBinOp() @ 0x555986050faf clang::Parser::ParseRHSOfBinaryExpression() @ 0x55598604fcac clang::Parser::ParseAssignmentExpression() @ 0x555 ``` </details> https://github.com/llvm/llvm-project/pull/72213 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits