PR c++/71826
* pt.c (tsubst_baselink): Only set BASELINK_OPTYPE for BASELINK_P.
* g++.dg/template/pr71826.C: New test.
From-SVN: r238441
2016-07-18 Jakub Jelinek <jakub@redhat.com>
+ PR c++/71826
+ * pt.c (tsubst_baselink): Only set BASELINK_OPTYPE for BASELINK_P.
+
PR c++/71822
* cp-gimplify.c (cp_gimplify_expr) <case VEC_INIT_EXPR>: Recursively
fold *expr_p before genericizing it.
BASELINK_FUNCTIONS (baselink),
template_args);
/* Update the conversion operator type. */
- BASELINK_OPTYPE (baselink) = optype;
+ if (BASELINK_P (baselink))
+ BASELINK_OPTYPE (baselink) = optype;
if (!object_type)
object_type = current_class_type;
2016-07-18 Jakub Jelinek <jakub@redhat.com>
+ PR c++/71826
+ * g++.dg/template/pr71826.C: New test.
+
PR c++/71822
* g++.dg/template/defarg21.C: New test.
--- /dev/null
+// PR c++/71826
+// { dg-do compile }
+
+template <class> struct A { int i; }; // { dg-message "note" }
+struct B { void i () {} }; // { dg-message "note" }
+template <class T> struct C : A <T>, B
+{
+ void f () { i (); } // { dg-error "is ambiguous" }
+};
+
+int
+main ()
+{
+ C <int> c;
+ c.f ();
+ return 0;
+}