+2009-10-14 Jason Merrill <jason@redhat.com>
+
+ PR c++/39866
+ * call.c (print_z_candidates): Don't print deleted candidates.
+ (print_z_candidate): Note deleted candidates.
+
2009-10-14 Larry Evans <cppljevans@suddenlink.net>
PR c++/40092
inform (input_location, "%s %T <conversion>", msgstr, candidate->fn);
else if (candidate->viable == -1)
inform (input_location, "%s %+#D <near match>", msgstr, candidate->fn);
+ else if (DECL_DELETED_FN (candidate->fn))
+ inform (input_location, "%s %+#D <deleted>", msgstr, candidate->fn);
else
inform (input_location, "%s %+#D", msgstr, candidate->fn);
}
struct z_candidate *cand1;
struct z_candidate **cand2;
+ if (!candidates)
+ return;
+
+ /* Remove deleted candidates. */
+ cand1 = candidates;
+ for (cand2 = &cand1; *cand2; )
+ {
+ if (TREE_CODE ((*cand2)->fn) == FUNCTION_DECL
+ && DECL_DELETED_FN ((*cand2)->fn))
+ *cand2 = (*cand2)->next;
+ else
+ cand2 = &(*cand2)->next;
+ }
+ /* ...if there are any non-deleted ones. */
+ if (cand1)
+ candidates = cand1;
+
/* There may be duplicates in the set of candidates. We put off
checking this condition as long as possible, since we have no way
to eliminate duplicates from a set of functions in less than n^2
}
}
- if (!candidates)
- return;
-
str = _("candidates are:");
print_z_candidate (str, candidates);
if (candidates->next)
+2009-10-14 Jason Merrill <jason@redhat.com>
+
+ PR c++/39866
+ * g++.dg/cpp0x/defaulted14.C: New.
+
2009-10-14 Larry Evans <cppljevans@suddenlink.net>
* g++.dg/cpp0x/vt-40092.C: New.
--- /dev/null
+// PR c++/39866
+// { dg-options "-std=c++0x" }
+
+struct A {
+ A& operator=(const A&) = delete; // { dg-bogus "" }
+
+ void operator=(int) {} // { dg-message "" }
+ void operator=(char) {} // { dg-message "" }
+};
+
+struct B {};
+
+int main()
+{
+ A a;
+ a = B(); // { dg-error "no match" }
+ a = 1.0; // { dg-error "ambiguous" }
+}
+2009-10-14 Jason Merrill <jason@redhat.com>
+
+ * testsuite/20_util/unique_ptr/assign/assign_neg.cc: Adjust expecteds.
+
2009-10-13 Paolo Carlini <paolo.carlini@oracle.com>
* include/parallel/for_each_selectors.h: Minor uglification and
std::unique_ptr<int[2]> p2 = p1;
}
+// { dg-error "deleted function" "" { target *-*-* } 358 }
// { dg-error "used here" "" { target *-*-* } 42 }
// { dg-error "no matching" "" { target *-*-* } 48 }
-// { dg-error "used here" "" { target *-*-* } 49 }
-// { dg-error "candidates are" "" { target *-*-* } 213 }
+// { dg-warning "candidates are" "" { target *-*-* } 119 }
+// { dg-warning "note" "" { target *-*-* } 112 }
+// { dg-warning "note" "" { target *-*-* } 107 }
+// { dg-warning "note" "" { target *-*-* } 102 }
+// { dg-warning "note" "" { target *-*-* } 96 }
// { dg-error "deleted function" "" { target *-*-* } 213 }
-// { dg-error "deleted function" "" { target *-*-* } 358 }
-// { dg-excess-errors "note" }
+// { dg-error "used here" "" { target *-*-* } 49 }