@@ -6634,7 +6634,7 @@ convert_like_real (conversion *convs, tree expr, tree fn, int argnum,
expr = decay_conversion (expr, complain);
if (expr == error_mark_node)
{
- if (complain)
+ if (complain & tf_error)
{
maybe_print_user_conv_context (convs);
if (fn)
new file mode 100644
@@ -0,0 +1,16 @@
+// PR c++/71495
+// { dg-do compile { target c++11 } }
+
+struct A;
+template <class T> void f(T); // { dg-bogus "initializing" }
+template <class T> T&& declval();
+struct B
+{
+ template <class T, class U> static decltype(f<T>(declval<U>())) g(int);
+ template <class T, class U> void g(...);
+} b;
+
+int main()
+{
+ b.g<A,A>(42);
+}