// RUN: %clang_cc1 -fsyntax-only -verify %s
enumcopy_traits{ movable =1};template<int>structoptional_ctor_base{};template<typename T>structctor_copy_traits{// this would produce a c++98-compat warning, which would erroneously get the
// no-matching-function-call error's notes attached to it (or suppress those
// notes if this diagnostic was suppressed, as it is in this case)
staticconstexprint traits = copy_traits::movable;};template<typename T>structoptional:optional_ctor_base<ctor_copy_traits<T>::traits>{template<typename U>constexproptional(U&&v);};structA{};structXA{XA(const A&);};structB{};structXB{XB(const B&);XB(const optional<B>&);};structYB:XB{using XB::XB;};voidInsertRow(const XA&,const YB&);// expected-note {{candidate function not viable: no known conversion from 'int' to 'const XA' for 1st argument}}
voidReproducesBugSimply(){InsertRow(3, B{});// expected-error {{no matching function for call to 'InsertRow'}}
}