This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

C++ PATCHes to improve overload resolution diagnostics


When I was working on DR 1571, I noticed that our diagnostics weren't very helpful for reference bindings (BZ 20332/21631) so I set out to treat lvalue/rvalue mismatches and cv-qual loss as a bad conversion rather than no conversion. As I worked on that I kept noticing other things that I could tweak to improve diagnostics:

We now explain what's wrong with near matches in overload resolution. As a result, I've changed to saying "candidate:" before every candidate to help users recognize when we're printing a new candidate rather than explanation of what was wrong with the previous one.

We now get information about near-matches even with -pedantic.

If we see ambiguous valid candidates, the diagnostic won't mention near-matches. If we see a template candidate and ambiguous near-valid candidates, we will print all the candidates.

Tested x86_64-pc-linux-gnu, applying to trunk.
commit f770db5dce4328b831d3c3e50322366f3e7b927a
Author: jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Date:   Tue May 13 21:10:03 2014 +0000

    	* call.c (print_error_for_call_failure): Say "no match" rather
    	than "ambiguous" if there were no strict matches.
    	(build_new_method_call_1): Likewise.
    
    git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@210402 138bc75d-0d04-0410-961f-82ee72b054a4

diff --git a/gcc/cp/call.c b/gcc/cp/call.c
index 7b8bc09..d8a7dcd 100644
--- a/gcc/cp/call.c
+++ b/gcc/cp/call.c
@@ -3914,13 +3914,13 @@ perform_overload_resolution (tree fn,
    functions.  */
 
 static void
-print_error_for_call_failure (tree fn, vec<tree, va_gc> *args, bool any_viable_p,
+print_error_for_call_failure (tree fn, vec<tree, va_gc> *args,
 			      struct z_candidate *candidates)
 {
   tree name = DECL_NAME (OVL_CURRENT (fn));
   location_t loc = location_of (name);
 
-  if (!any_viable_p)
+  if (!any_strictly_viable (candidates))
     error_at (loc, "no matching function for call to %<%D(%A)%>",
 	      name, build_tree_list_vec (args));
   else
@@ -3964,7 +3964,7 @@ build_new_function_call (tree fn, vec<tree, va_gc> **args, bool koenig_p,
       if (!fn)
 	{
 	  if (complain & tf_error)
-	    print_error_for_call_failure (orig_fn, *args, false, NULL);
+	    print_error_for_call_failure (orig_fn, *args, NULL);
 	  return error_mark_node;
 	}
     }
@@ -3984,7 +3984,7 @@ build_new_function_call (tree fn, vec<tree, va_gc> **args, bool koenig_p,
 	    return cp_build_function_call_vec (candidates->fn, args, complain);
 	  if (TREE_CODE (fn) == TEMPLATE_ID_EXPR)
 	    fn = TREE_OPERAND (fn, 0);
-	  print_error_for_call_failure (fn, *args, any_viable_p, candidates);
+	  print_error_for_call_failure (fn, *args, candidates);
 	}
       result = error_mark_node;
     }
@@ -4066,7 +4066,7 @@ build_operator_new_call (tree fnname, vec<tree, va_gc> **args,
   if (!cand)
     {
       if (complain & tf_error)
-	print_error_for_call_failure (fns, *args, any_viable_p, candidates);
+	print_error_for_call_failure (fns, *args, candidates);
       return error_mark_node;
     }
 
@@ -7898,8 +7898,12 @@ build_new_method_call_1 (tree instance, tree fns, vec<tree, va_gc> **args,
 	      arglist = build_tree_list_vec (user_args);
 	      if (skip_first_for_error)
 		arglist = TREE_CHAIN (arglist);
-	      error ("call of overloaded %<%s(%A)%> is ambiguous", pretty_name,
-		     arglist);
+	      if (!any_strictly_viable (candidates))
+		error ("no matching function for call to %<%s(%A)%>",
+		       pretty_name, arglist);
+	      else
+		error ("call of overloaded %<%s(%A)%> is ambiguous",
+		       pretty_name, arglist);
 	      print_z_candidates (location_of (name), candidates);
 	      if (free_p)
 		free (pretty_name);
diff --git a/gcc/testsuite/g++.dg/cpp0x/rv2n.C b/gcc/testsuite/g++.dg/cpp0x/rv2n.C
index 289cffb..5444c78 100644
--- a/gcc/testsuite/g++.dg/cpp0x/rv2n.C
+++ b/gcc/testsuite/g++.dg/cpp0x/rv2n.C
@@ -492,7 +492,7 @@ int test2_67()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_2_67(a);            // { dg-error "ambiguous" }
+    sink_2_67(a);            // { dg-error "no match" }
     // { dg-message "candidate" "candidate note" { target *-*-* } 495 }
     sink_2_67(ca);	     // { dg-error "lvalue" }
     sink_2_67(va);	     // { dg-error "lvalue" }
diff --git a/gcc/testsuite/g++.dg/cpp0x/rv3n.C b/gcc/testsuite/g++.dg/cpp0x/rv3n.C
index 765dfbc..3a729cb 100644
--- a/gcc/testsuite/g++.dg/cpp0x/rv3n.C
+++ b/gcc/testsuite/g++.dg/cpp0x/rv3n.C
@@ -930,7 +930,7 @@ int test3_678()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_3_678(a);          // { dg-error "ambiguous" }
+    sink_3_678(a);          // { dg-error "no match" }
     // { dg-message "candidate" "candidate note" { target *-*-* } 933 }
     sink_3_678(ca);	    // { dg-error "lvalue" }
     sink_3_678(va);	    // { dg-error "lvalue" }
commit f29ef35c60a01d74c8046b502f972c631cfbf066
Author: Jason Merrill <jason@redhat.com>
Date:   Wed May 7 23:23:18 2014 -0400

    	* call.c (struct conversion_info): Rename 'from_type' to 'from'.
    	(arg_conversion_rejection, bad_arg_conversion_rejection)
    	(explicit_conversion_rejection, template_conversion_rejection): Adjust.
    	(add_function_candidate): Pass actual argument, rather than type, to
    	bad_arg_conversion_rejection.
    	(print_conversion_rejection): Explain what's wrong with the conversion.
    	(print_z_candidate): Say "candidate:" before each candidate.
    	(splice_viable): Be strict if we see a viable or template candidate.
    	(build_user_type_conversion_1): Pass false to strict parameter.
    	(perform_overload_resolution, build_conditional_expr_1): Likewise.
    	(build_new_op_1, build_new_method_call_1): Likewise.
    	(build_op_call_1): Pass true to strict parameter.

diff --git a/gcc/cp/call.c b/gcc/cp/call.c
index d8a7dcd..1d9a15c 100644
--- a/gcc/cp/call.c
+++ b/gcc/cp/call.c
@@ -458,9 +458,9 @@ enum rejection_reason_code {
 struct conversion_info {
   /* The index of the argument, 0-based.  */
   int n_arg;
-  /* The type of the actual argument.  */
-  tree from_type;
-  /* The type of the formal argument.  */
+  /* The actual argument or its type.  */
+  tree from;
+  /* The type of the parameter.  */
   tree to_type;
 };
   
@@ -644,7 +644,7 @@ arg_conversion_rejection (tree first_arg, int n_arg, tree from, tree to)
   struct rejection_reason *r = alloc_rejection (rr_arg_conversion);
   int adjust = first_arg != NULL_TREE;
   r->u.conversion.n_arg = n_arg - adjust;
-  r->u.conversion.from_type = from;
+  r->u.conversion.from = from;
   r->u.conversion.to_type = to;
   return r;
 }
@@ -655,7 +655,7 @@ bad_arg_conversion_rejection (tree first_arg, int n_arg, tree from, tree to)
   struct rejection_reason *r = alloc_rejection (rr_bad_arg_conversion);
   int adjust = first_arg != NULL_TREE;
   r->u.bad_conversion.n_arg = n_arg - adjust;
-  r->u.bad_conversion.from_type = from;
+  r->u.bad_conversion.from = from;
   r->u.bad_conversion.to_type = to;
   return r;
 }
@@ -665,7 +665,7 @@ explicit_conversion_rejection (tree from, tree to)
 {
   struct rejection_reason *r = alloc_rejection (rr_explicit_conversion);
   r->u.conversion.n_arg = 0;
-  r->u.conversion.from_type = from;
+  r->u.conversion.from = from;
   r->u.conversion.to_type = to;
   return r;
 }
@@ -675,7 +675,7 @@ template_conversion_rejection (tree from, tree to)
 {
   struct rejection_reason *r = alloc_rejection (rr_template_conversion);
   r->u.conversion.n_arg = 0;
-  r->u.conversion.from_type = from;
+  r->u.conversion.from = from;
   r->u.conversion.to_type = to;
   return r;
 }
@@ -2072,7 +2072,7 @@ add_function_candidate (struct z_candidate **candidates,
       if (t->bad_p)
 	{
 	  viable = -1;
-	  reason = bad_arg_conversion_rejection (first_arg, i, argtype, to_type);
+	  reason = bad_arg_conversion_rejection (first_arg, i, arg, to_type);
 	}
     }
 
@@ -2161,7 +2161,7 @@ add_conv_candidate (struct z_candidate **candidates, tree fn, tree obj,
       if (t->bad_p)
 	{
 	  viable = -1;
-	  reason = bad_arg_conversion_rejection (NULL_TREE, i, argtype, convert_type);
+	  reason = bad_arg_conversion_rejection (NULL_TREE, i, arg, convert_type);
 	}
 
       if (i == 0)
@@ -2227,7 +2227,7 @@ build_builtin_candidate (struct z_candidate **candidates, tree fnname,
       else if (t->bad_p)
 	{
 	  viable = 0;
-	  reason = bad_arg_conversion_rejection (NULL_TREE, i, argtypes[i],
+	  reason = bad_arg_conversion_rejection (NULL_TREE, i, args[i],
 						 types[i]);
 	}
       convs[i] = t;
@@ -3120,6 +3120,7 @@ splice_viable (struct z_candidate *cands,
   struct z_candidate *viable;
   struct z_candidate **last_viable;
   struct z_candidate **cand;
+  bool found_strictly_viable = false;
 
   /* Be strict inside templates, since build_over_call won't actually
      do the conversions to get pedwarns.  */
@@ -3134,6 +3135,25 @@ splice_viable (struct z_candidate *cands,
   while (*cand)
     {
       struct z_candidate *c = *cand;
+      if (!strict_p
+	  && (c->viable == 1 || TREE_CODE (c->fn) == TEMPLATE_DECL))
+	{
+	  /* Be strict in the presence of a viable candidate.  Also if
+	     there are template candidates, so that we get deduction errors
+	     for them instead of silently preferring a bad conversion.  */
+	  strict_p = true;
+	  if (viable && !found_strictly_viable)
+	    {
+	      /* Put any spliced near matches back onto the main list so
+		 that we see them if there is no strict match.  */
+	      *any_viable_p = false;
+	      *last_viable = cands;
+	      cands = viable;
+	      viable = NULL;
+	      last_viable = &viable;
+	    }
+	}
+
       if (strict_p ? c->viable == 1 : c->viable)
 	{
 	  *last_viable = c;
@@ -3141,6 +3161,8 @@ splice_viable (struct z_candidate *cands,
 	  c->next = NULL;
 	  last_viable = &c->next;
 	  *any_viable_p = true;
+	  if (c->viable == 1)
+	    found_strictly_viable = true;
 	}
       else
 	cand = &c->next;
@@ -3195,18 +3217,37 @@ equal_functions (tree fn1, tree fn2)
 static void
 print_conversion_rejection (location_t loc, struct conversion_info *info)
 {
+  tree from = info->from;
+  if (!TYPE_P (from))
+    from = lvalue_type (from);
   if (info->n_arg == -1)
-    /* Conversion of implicit `this' argument failed.  */
-    inform (loc, "  no known conversion for implicit "
-	    "%<this%> parameter from %qT to %qT",
-	    info->from_type, info->to_type);
+    {
+      /* Conversion of implicit `this' argument failed.  */
+      if (!TYPE_P (info->from))
+	/* A bad conversion for 'this' must be discarding cv-quals.  */
+	inform (input_location, "  passing %qT as %<this%> "
+		"argument discards qualifiers",
+		from);
+      else
+	inform (loc, "  no known conversion for implicit "
+		"%<this%> parameter from %qT to %qT",
+		from, info->to_type);
+    }
+  else if (!TYPE_P (info->from))
+    {
+      if (info->n_arg >= 0)
+	inform (loc, "  conversion of argument %d would be ill-formed:",
+		info->n_arg+1);
+      perform_implicit_conversion (info->to_type, info->from,
+				   tf_warning_or_error);
+    }
   else if (info->n_arg == -2)
     /* Conversion of conversion function return value failed.  */
     inform (loc, "  no known conversion from %qT to %qT",
-	    info->from_type, info->to_type);
+	    from, info->to_type);
   else
     inform (loc, "  no known conversion for argument %d from %qT to %qT",
-	    info->n_arg+1, info->from_type, info->to_type);
+	    info->n_arg+1, from, info->to_type);
 }
 
 /* Print information about a candidate with WANT parameters and we found
@@ -3281,13 +3322,13 @@ print_z_candidate (location_t loc, const char *msgstr,
 	case rr_explicit_conversion:
 	  inform (cloc, "  return type %qT of explicit conversion function "
 		  "cannot be converted to %qT with a qualification "
-		  "conversion", r->u.conversion.from_type,
+		  "conversion", r->u.conversion.from,
 		  r->u.conversion.to_type);
 	  break;
 	case rr_template_conversion:
 	  inform (cloc, "  conversion from return type %qT of template "
 		  "conversion function specialization to %qT is not an "
-		  "exact match", r->u.conversion.from_type,
+		  "exact match", r->u.conversion.from,
 		  r->u.conversion.to_type);
 	  break;
 	case rr_template_unification:
@@ -3377,9 +3418,8 @@ print_z_candidates (location_t loc, struct z_candidate *candidates)
   for (n_candidates = 0, cand1 = candidates; cand1; cand1 = cand1->next)
     n_candidates++;
 
-  inform_n (loc, n_candidates, "candidate is:", "candidates are:");
   for (; candidates; candidates = candidates->next)
-    print_z_candidate (loc, NULL, candidates);
+    print_z_candidate (loc, "candidate:", candidates);
 }
 
 /* USER_SEQ is a user-defined conversion sequence, beginning with a
@@ -3663,7 +3703,7 @@ build_user_type_conversion_1 (tree totype, tree expr, int flags,
 	}
     }
 
-  candidates = splice_viable (candidates, pedantic, &any_viable_p);
+  candidates = splice_viable (candidates, false, &any_viable_p);
   if (!any_viable_p)
     {
       if (args)
@@ -3898,7 +3938,7 @@ perform_overload_resolution (tree fn,
 		  LOOKUP_NORMAL,
 		  candidates, complain);
 
-  *candidates = splice_viable (*candidates, pedantic, any_viable_p);
+  *candidates = splice_viable (*candidates, false, any_viable_p);
   if (*any_viable_p)
     cand = tourney (*candidates, complain);
   else
@@ -4209,7 +4249,9 @@ build_op_call_1 (tree obj, vec<tree, va_gc> **args, tsubst_flags_t complain)
 	  }
     }
 
-  candidates = splice_viable (candidates, pedantic, &any_viable_p);
+  /* Be strict here because if we choose a bad conversion candidate, the
+     errors we get won't mention the call context.  */
+  candidates = splice_viable (candidates, true, &any_viable_p);
   if (!any_viable_p)
     {
       if (complain & tf_error)
@@ -4849,7 +4891,7 @@ build_conditional_expr_1 (location_t loc, tree arg1, tree arg2, tree arg3,
 
 	 If the overload resolution fails, the program is
 	 ill-formed.  */
-      candidates = splice_viable (candidates, pedantic, &any_viable_p);
+      candidates = splice_viable (candidates, false, &any_viable_p);
       if (!any_viable_p)
 	{
           if (complain & tf_error)
@@ -5373,7 +5415,7 @@ build_new_op_1 (location_t loc, enum tree_code code, int flags, tree arg1,
       break;
 
     default:
-      strict_p = pedantic;
+      strict_p = false;
       break;
     }
 
@@ -7851,7 +7893,7 @@ build_new_method_call_1 (tree instance, tree fns, vec<tree, va_gc> **args,
 		      access_binfo, flags, &candidates, complain);
     }
   any_viable_p = false;
-  candidates = splice_viable (candidates, pedantic, &any_viable_p);
+  candidates = splice_viable (candidates, false, &any_viable_p);
 
   if (!any_viable_p)
     {
diff --git a/gcc/testsuite/g++.dg/conversion/ambig1.C b/gcc/testsuite/g++.dg/conversion/ambig1.C
index 85ea1d2..1db1667 100644
--- a/gcc/testsuite/g++.dg/conversion/ambig1.C
+++ b/gcc/testsuite/g++.dg/conversion/ambig1.C
@@ -6,4 +6,3 @@ struct H {
 };
 
 int const& ref = H(); // { dg-error "ambiguous" }
-// { dg-message "candidate" "candidate note" { target *-*-* } 8 }
diff --git a/gcc/testsuite/g++.dg/conversion/op1.C b/gcc/testsuite/g++.dg/conversion/op1.C
index e0a3e5f..dd7ac2f 100644
--- a/gcc/testsuite/g++.dg/conversion/op1.C
+++ b/gcc/testsuite/g++.dg/conversion/op1.C
@@ -7,5 +7,4 @@ class C
 int fn (C c) 
 { 
   return C::operator float(c); // { dg-error "operator float.C" }
-  // { dg-message "candidate" "candidate note" { target *-*-* } 9 }
 }
diff --git a/gcc/testsuite/g++.dg/conversion/op5.C b/gcc/testsuite/g++.dg/conversion/op5.C
index 69ef996..0aad925 100644
--- a/gcc/testsuite/g++.dg/conversion/op5.C
+++ b/gcc/testsuite/g++.dg/conversion/op5.C
@@ -15,6 +15,6 @@ struct B
 void
 foo (const B& b)
 {
-  const A a = b; // { dg-error "conversion from 'const B' to non-scalar type 'const A' requested" }
+  const A a = b; // { dg-error "const B" }
 }
 
diff --git a/gcc/testsuite/g++.dg/conversion/simd1.C b/gcc/testsuite/g++.dg/conversion/simd1.C
index 522d8b5..7955f68 100644
--- a/gcc/testsuite/g++.dg/conversion/simd1.C
+++ b/gcc/testsuite/g++.dg/conversion/simd1.C
@@ -18,7 +18,6 @@ extern const vector signed short *cvssp;
 void foo ()
 {
   vss = vld(i, vscp);        /* { dg-error "no matching function for call" } */
-  // { dg-message "candidate" "candidate note" { target *-*-* } 20 }
   vss = vld(i, vssp);
   vss = vld(i, cvssp);
 }
diff --git a/gcc/testsuite/g++.dg/cpp0x/defaulted14.C b/gcc/testsuite/g++.dg/cpp0x/defaulted14.C
index 0c07fa7..16df8bc 100644
--- a/gcc/testsuite/g++.dg/cpp0x/defaulted14.C
+++ b/gcc/testsuite/g++.dg/cpp0x/defaulted14.C
@@ -14,7 +14,5 @@ int main()
 {
   A a;
   a = B();		// { dg-error "no match" }
-  // { dg-message "candidate" "candidate note" { target *-*-* } 16 }
   a = 1.0;		// { dg-error "ambiguous" }
-  // { dg-message "candidate" "candidate note" { target *-*-* } 18 }
 }
diff --git a/gcc/testsuite/g++.dg/cpp0x/defaulted18.C b/gcc/testsuite/g++.dg/cpp0x/defaulted18.C
index 6d84a1e..83e1126 100644
--- a/gcc/testsuite/g++.dg/cpp0x/defaulted18.C
+++ b/gcc/testsuite/g++.dg/cpp0x/defaulted18.C
@@ -6,5 +6,4 @@ void f(int i, ...);		// { dg-message "void f" }
 int main()
 {
   f(1,1);			// { dg-error "ambiguous" }
-  // { dg-message "candidate" "candidate note" { target *-*-* } 8 }
 }
diff --git a/gcc/testsuite/g++.dg/cpp0x/explicit4.C b/gcc/testsuite/g++.dg/cpp0x/explicit4.C
index 663878e..346a6e2 100644
--- a/gcc/testsuite/g++.dg/cpp0x/explicit4.C
+++ b/gcc/testsuite/g++.dg/cpp0x/explicit4.C
@@ -14,5 +14,4 @@ int main()
   B b;
   (A(b));			// OK
   (A(b,1));			// { dg-error "no match" }
-  // { dg-message "candidate" "candidate note" { target *-*-* } 16 }
 }
diff --git a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const-this.C b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const-this.C
index 2de00d3..220ac91 100644
--- a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const-this.C
+++ b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const-this.C
@@ -2,8 +2,8 @@
 // PR c++/60755
 // { dg-do compile { target c++11 } }
 struct S {
-  void f(); // { dg-message "no known conversion for implicit 'this' parameter from 'const S\\*' to 'S\\*'" }
+  void f();
   void g() const {
-    [=] { f(); } (); // { dg-error "no matching function for call to 'S::f\\(\\)'" }
+    [=] { f(); } (); // { dg-error "no match|qualifiers" }
   }
 };
diff --git a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C
index 6a31e0a..702f18f 100644
--- a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C
+++ b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C
@@ -12,6 +12,5 @@ int main()
   auto l = []() { return 5; }; // { dg-message "lambda closure type" }
 
   run(l); // { dg-error "no match" }
-  // { dg-message "candidate" "candidate note" { target *-*-* } 14 }
   // { dg-error "use of deleted function" "candidate explanation" { target *-*-* } 5 }
 }
diff --git a/gcc/testsuite/g++.dg/cpp0x/nullptr19.C b/gcc/testsuite/g++.dg/cpp0x/nullptr19.C
index 8b6a0b4..17c4b7c 100644
--- a/gcc/testsuite/g++.dg/cpp0x/nullptr19.C
+++ b/gcc/testsuite/g++.dg/cpp0x/nullptr19.C
@@ -11,7 +11,5 @@ nullptr_t k( nullptr_t ); /* { dg-message "note" } */
 void test_k()
 {
   k(0); /* { dg-error "is ambiguous" } */
-  // { dg-message "candidate" "candidate note" { target *-*-* } 13 }
   k(__null); /* { dg-error "is ambiguous" } */
-  // { dg-message "candidate" "candidate note" { target *-*-* } 15 }
 }
diff --git a/gcc/testsuite/g++.dg/cpp0x/pr31434.C b/gcc/testsuite/g++.dg/cpp0x/pr31434.C
index e70bdd1..afb719f 100644
--- a/gcc/testsuite/g++.dg/cpp0x/pr31434.C
+++ b/gcc/testsuite/g++.dg/cpp0x/pr31434.C
@@ -8,5 +8,4 @@ template<typename... T> int foo(const T&) // { dg-error "not expanded with|T" }
 void bar()
 {
   foo(0); // { dg-error "no matching" }
-  // { dg-message "(candidate|cannot convert)" "candidate note" { target *-*-* } 10 }
 }
diff --git a/gcc/testsuite/g++.dg/cpp0x/pr31437.C b/gcc/testsuite/g++.dg/cpp0x/pr31437.C
index 5f7010f..7e2ed7a 100644
--- a/gcc/testsuite/g++.dg/cpp0x/pr31437.C
+++ b/gcc/testsuite/g++.dg/cpp0x/pr31437.C
@@ -7,4 +7,3 @@ template <typename... T> struct A // { dg-message "candidates|A" }
 };
 
 A<int> a(0); // { dg-error "no matching" }
-// { dg-message "candidate" "candidate note" { target *-*-* } 9 }
diff --git a/gcc/testsuite/g++.dg/cpp0x/rv1n.C b/gcc/testsuite/g++.dg/cpp0x/rv1n.C
index 9aa534a..204ca31 100644
--- a/gcc/testsuite/g++.dg/cpp0x/rv1n.C
+++ b/gcc/testsuite/g++.dg/cpp0x/rv1n.C
@@ -37,13 +37,13 @@ int test1_1()
     const          A ca = a;	// { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a;	// { dg-error "deleted" }
-    sink_1_1(ca);           // { dg-error "invalid initialization" }
-    sink_1_1(va);           // { dg-error "invalid initialization" }
-    sink_1_1(cva);          // { dg-error "invalid initialization" }
-    sink_1_1(source());     // { dg-error "invalid initialization" }
-    sink_1_1(c_source());   // { dg-error "invalid initialization" }
-    sink_1_1(v_source());   // { dg-error "invalid initialization" }
-    sink_1_1(cv_source());  // { dg-error "invalid initialization" }
+    sink_1_1(ca);           // { dg-error "" }
+    sink_1_1(va);           // { dg-error "" }
+    sink_1_1(cva);          // { dg-error "" }
+    sink_1_1(source());     // { dg-error "" }
+    sink_1_1(c_source());   // { dg-error "" }
+    sink_1_1(v_source());   // { dg-error "" }
+    sink_1_1(cv_source());  // { dg-error "" }
     return 0;
 }
 
@@ -55,10 +55,10 @@ int test1_2()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_1_2(va);           // { dg-error "invalid initialization" }
-    sink_1_2(cva);          // { dg-error "invalid initialization" }
-    sink_1_2(v_source());   // { dg-error "invalid initialization" }
-    sink_1_2(cv_source());  // { dg-error "invalid initialization" }
+    sink_1_2(va);           // { dg-error "" }
+    sink_1_2(cva);          // { dg-error "" }
+    sink_1_2(v_source());   // { dg-error "" }
+    sink_1_2(cv_source());  // { dg-error "" }
     return 0;
 }
 
@@ -70,12 +70,12 @@ int test1_3()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_1_3(ca);           // { dg-error "invalid initialization" }
-    sink_1_3(cva);          // { dg-error "invalid initialization" }
-    sink_1_3(source());     // { dg-error "invalid initialization" }
-    sink_1_3(c_source());   // { dg-error "invalid initialization" }
-    sink_1_3(v_source());   // { dg-error "invalid initialization" }
-    sink_1_3(cv_source());  // { dg-error "invalid initialization" }
+    sink_1_3(ca);           // { dg-error "" }
+    sink_1_3(cva);          // { dg-error "" }
+    sink_1_3(source());     // { dg-error "" }
+    sink_1_3(c_source());   // { dg-error "" }
+    sink_1_3(v_source());   // { dg-error "" }
+    sink_1_3(cv_source());  // { dg-error "" }
     return 0;
 }
 
@@ -87,10 +87,10 @@ int test1_4()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_1_4(source());     // { dg-error "invalid initialization" }
-    sink_1_4(c_source());   // { dg-error "invalid initialization" }
-    sink_1_4(v_source());   // { dg-error "invalid initialization" }
-    sink_1_4(cv_source());  // { dg-error "invalid initialization" }
+    sink_1_4(source());     // { dg-error "" }
+    sink_1_4(c_source());   // { dg-error "" }
+    sink_1_4(v_source());   // { dg-error "" }
+    sink_1_4(cv_source());  // { dg-error "" }
     return 0;
 }
 
@@ -103,12 +103,12 @@ int test1_5()
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
     sink_1_5(a);		// { dg-error "lvalue" }
-    sink_1_5(ca);           // { dg-error "invalid initialization" }
-    sink_1_5(va);           // { dg-error "invalid initialization" }
-    sink_1_5(cva);          // { dg-error "invalid initialization" }
-    sink_1_5(c_source());   // { dg-error "invalid initialization" }
-    sink_1_5(v_source());   // { dg-error "invalid initialization" }
-    sink_1_5(cv_source());  // { dg-error "invalid initialization" }
+    sink_1_5(ca);           // { dg-error "" }
+    sink_1_5(va);           // { dg-error "" }
+    sink_1_5(cva);          // { dg-error "" }
+    sink_1_5(c_source());   // { dg-error "" }
+    sink_1_5(v_source());   // { dg-error "" }
+    sink_1_5(cv_source());  // { dg-error "" }
     return 0;
 }
 
@@ -122,10 +122,10 @@ int test1_6()
     const volatile A cva = a; // { dg-error "deleted" }
     sink_1_6(a);		// { dg-error "lvalue" }
     sink_1_6(ca);		// { dg-error "lvalue" }
-    sink_1_6(va);           // { dg-error "invalid initialization" }
-    sink_1_6(cva);          // { dg-error "invalid initialization" }
-    sink_1_6(v_source());   // { dg-error "invalid initialization" }
-    sink_1_6(cv_source());  // { dg-error "invalid initialization" }
+    sink_1_6(va);           // { dg-error "" }
+    sink_1_6(cva);          // { dg-error "" }
+    sink_1_6(v_source());   // { dg-error "" }
+    sink_1_6(cv_source());  // { dg-error "" }
     return 0;
 }
 
@@ -138,11 +138,11 @@ int test1_7()
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
     sink_1_7(a);	    // { dg-error "lvalue" }
-    sink_1_7(ca);           // { dg-error "invalid initialization" }
+    sink_1_7(ca);           // { dg-error "" }
     sink_1_7(va);	    // { dg-error "lvalue" }
-    sink_1_7(cva);          // { dg-error "invalid initialization" }
-    sink_1_7(c_source());   // { dg-error "invalid initialization" }
-    sink_1_7(cv_source());  // { dg-error "invalid initialization" }
+    sink_1_7(cva);          // { dg-error "" }
+    sink_1_7(c_source());   // { dg-error "" }
+    sink_1_7(cv_source());  // { dg-error "" }
     return 0;
 }
 
diff --git a/gcc/testsuite/g++.dg/cpp0x/rv2n.C b/gcc/testsuite/g++.dg/cpp0x/rv2n.C
index 5444c78..9677f58 100644
--- a/gcc/testsuite/g++.dg/cpp0x/rv2n.C
+++ b/gcc/testsuite/g++.dg/cpp0x/rv2n.C
@@ -30,8 +30,8 @@ const volatile A cv_source();
 
 // 2 at a time
 
-one   sink_2_12(               A&);  // { dg-message "note|argument" }
-two   sink_2_12(const          A&);  // { dg-message "note|argument" }
+one   sink_2_12(               A&);
+two   sink_2_12(const          A&);
 
 int test2_12()
 {
@@ -39,19 +39,15 @@ int test2_12()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_2_12(va);           // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 42 }
-    sink_2_12(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 44 }
-    sink_2_12(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 46 }
-    sink_2_12(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 48 }
+    sink_2_12(va);           // { dg-error "" }
+    sink_2_12(cva);          // { dg-error "" }
+    sink_2_12(v_source());   // { dg-error "" }
+    sink_2_12(cv_source());  // { dg-error "" }
     return 0;
 }
 
-one   sink_2_13(               A&);  // { dg-message "note|argument" }
-three sink_2_13(volatile       A&);  // { dg-message "note|argument" }
+one   sink_2_13(               A&);
+three sink_2_13(volatile       A&);
 
 int test2_13()
 {
@@ -59,23 +55,17 @@ int test2_13()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_2_13(ca);           // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 62 }
-    sink_2_13(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 64 }
-    sink_2_13(source());     // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 66 }
-    sink_2_13(c_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 68 }
-    sink_2_13(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 70 }
-    sink_2_13(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 72 }
+    sink_2_13(ca);           // { dg-error "" }
+    sink_2_13(cva);          // { dg-error "" }
+    sink_2_13(source());     // { dg-error "" }
+    sink_2_13(c_source());   // { dg-error "" }
+    sink_2_13(v_source());   // { dg-error "" }
+    sink_2_13(cv_source());  // { dg-error "" }
     return 0;
 }
 
-one   sink_2_14(               A&);  // { dg-message "note|argument" }
-four  sink_2_14(const volatile A&);  // { dg-message "note|argument" }
+one   sink_2_14(               A&);
+four  sink_2_14(const volatile A&);
 
 int test2_14()
 {
@@ -83,19 +73,15 @@ int test2_14()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_2_14(source());     // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 86 }
-    sink_2_14(c_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 88 }
-    sink_2_14(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 90 }
-    sink_2_14(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 92 }
+    sink_2_14(source());     // { dg-error "" }
+    sink_2_14(c_source());   // { dg-error "" }
+    sink_2_14(v_source());   // { dg-error "" }
+    sink_2_14(cv_source());  // { dg-error "" }
     return 0;
 }
 
-one   sink_2_15(               A&);  // { dg-message "note|argument" }
-five  sink_2_15(               A&&);  // { dg-message "note|argument" }
+one   sink_2_15(               A&);
+five  sink_2_15(               A&&);
 
 int test2_15()
 {
@@ -103,23 +89,17 @@ int test2_15()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-   sink_2_15(ca);           // { dg-error "no match" }
-   // { dg-message "candidate" "candidate note" { target *-*-* } 106 }
-   sink_2_15(va);           // { dg-error "no match" }
-   // { dg-message "candidate" "candidate note" { target *-*-* } 108 }
-   sink_2_15(cva);          // { dg-error "no match" }
-   // { dg-message "candidate" "candidate note" { target *-*-* } 110 }
-   sink_2_15(c_source());   // { dg-error "no match" }
-   // { dg-message "candidate" "candidate note" { target *-*-* } 112 }
-   sink_2_15(v_source());   // { dg-error "no match" }
-   // { dg-message "candidate" "candidate note" { target *-*-* } 114 }
-   sink_2_15(cv_source());  // { dg-error "no match" }
-   // { dg-message "candidate" "candidate note" { target *-*-* } 116 }
+   sink_2_15(ca);           // { dg-error "" }
+   sink_2_15(va);           // { dg-error "" }
+   sink_2_15(cva);          // { dg-error "" }
+   sink_2_15(c_source());   // { dg-error "" }
+   sink_2_15(v_source());   // { dg-error "" }
+   sink_2_15(cv_source());  // { dg-error "" }
     return 0;
 }
 
-one   sink_2_16(               A&);  // { dg-message "note|argument" }
-six   sink_2_16(const          A&&);  // { dg-message "note|argument" }
+one   sink_2_16(               A&);
+six   sink_2_16(const          A&&);
 
 int test2_16()
 {
@@ -127,20 +107,16 @@ int test2_16()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_2_16(ca);	     // { dg-error "lvalue" }
-    sink_2_16(va);           // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 131 }
-    sink_2_16(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 133 }
-    sink_2_16(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 135 }
-    sink_2_16(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 137 }
+    sink_2_16(ca);	     // { dg-error "" }
+    sink_2_16(va);           // { dg-error "" }
+    sink_2_16(cva);          // { dg-error "" }
+    sink_2_16(v_source());   // { dg-error "" }
+    sink_2_16(cv_source());  // { dg-error "" }
     return 0;
 }
 
-one   sink_2_17(               A&);  // { dg-message "note|argument" }
-seven sink_2_17(volatile       A&&);  // { dg-message "note|argument" }
+one   sink_2_17(               A&);
+seven sink_2_17(volatile       A&&);
 
 int test2_17()
 {
@@ -148,20 +124,16 @@ int test2_17()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_2_17(ca);           // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 151 }
-    sink_2_17(va);           // { dg-error "lvalue" }
-    sink_2_17(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 154 }
-    sink_2_17(c_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 156 }
-    sink_2_17(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 158 }
+    sink_2_17(ca);           // { dg-error "" }
+    sink_2_17(va);           // { dg-error "" }
+    sink_2_17(cva);          // { dg-error "" }
+    sink_2_17(c_source());   // { dg-error "" }
+    sink_2_17(cv_source());  // { dg-error "" }
     return 0;
 }
 
 one   sink_2_18(               A&);
-eight sink_2_18(const volatile A&&); // { dg-message "argument" }
+eight sink_2_18(const volatile A&&);
 
 int test2_18()
 {
@@ -169,13 +141,13 @@ int test2_18()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_2_18(ca);		// { dg-error "lvalue" }
-    sink_2_18(va);		// { dg-error "lvalue" }
-    sink_2_18(cva);		// { dg-error "lvalue" }
+    sink_2_18(ca);		// { dg-error "" }
+    sink_2_18(va);		// { dg-error "" }
+    sink_2_18(cva);		// { dg-error "" }
 }
 
-two   sink_2_23(const          A&);  // { dg-message "note|argument" }
-three sink_2_23(volatile       A&);  // { dg-message "note|argument" }
+two   sink_2_23(const          A&);
+three sink_2_23(volatile       A&);
 
 int test2_23()
 {
@@ -184,18 +156,14 @@ int test2_23()
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
     sink_2_23(a);            // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 186 }
-    sink_2_23(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 188 }
-    sink_2_23(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 190 }
-    sink_2_23(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 192 }
+    sink_2_23(cva);          // { dg-error "" }
+    sink_2_23(v_source());   // { dg-error "" }
+    sink_2_23(cv_source());  // { dg-error "" }
     return 0;
 }
 
-two   sink_2_24(const          A&);  // { dg-message "note|argument" }
-four  sink_2_24(const volatile A&);  // { dg-message "note|argument" }
+two   sink_2_24(const          A&);
+four  sink_2_24(const volatile A&);
 
 int test2_24()
 {
@@ -203,15 +171,13 @@ int test2_24()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_2_24(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 206 }
-    sink_2_24(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 208 }
+    sink_2_24(v_source());   // { dg-error "" }
+    sink_2_24(cv_source());  // { dg-error "" }
     return 0;
 }
 
-three sink_2_34(volatile       A&);  // { dg-message "three sink_2_34|no known conversion" }
-four  sink_2_34(const volatile A&);  // { dg-message "note|argument" }
+three sink_2_34(volatile       A&);
+four  sink_2_34(const volatile A&);
 
 int test2_34()
 {
@@ -219,19 +185,15 @@ int test2_34()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_2_34(source());     // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 222 }
-    sink_2_34(c_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 224 }
-    sink_2_34(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 226 }
-    sink_2_34(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 228 }
+    sink_2_34(source());     // { dg-error "" }
+    sink_2_34(c_source());   // { dg-error "" }
+    sink_2_34(v_source());   // { dg-error "" }
+    sink_2_34(cv_source());  // { dg-error "" }
     return 0;
 }
 
-two   sink_2_25(const          A&);  // { dg-message "two sink_2_25|no known conversion" }
-five  sink_2_25(               A&&);  // { dg-message "note|argument" }
+two   sink_2_25(const          A&);
+five  sink_2_25(               A&&);
 
 int test2_25()
 {
@@ -239,19 +201,15 @@ int test2_25()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-   sink_2_25(va);           // { dg-error "no match" }
-   // { dg-message "candidate" "candidate note" { target *-*-* } 242 }
-   sink_2_25(cva);          // { dg-error "no match" }
-   // { dg-message "candidate" "candidate note" { target *-*-* } 244 }
-   sink_2_25(v_source());   // { dg-error "no match" }
-   // { dg-message "candidate" "candidate note" { target *-*-* } 246 }
-   sink_2_25(cv_source());  // { dg-error "no match" }
-   // { dg-message "candidate" "candidate note" { target *-*-* } 248 }
+   sink_2_25(va);           // { dg-error "" }
+   sink_2_25(cva);          // { dg-error "" }
+   sink_2_25(v_source());   // { dg-error "" }
+   sink_2_25(cv_source());  // { dg-error "" }
     return 0;
 }
 
-two   sink_2_26(const          A&);  // { dg-message "two sink_2_26|no known conversion" }
-six   sink_2_26(const          A&&);  // { dg-message "note|argument" }
+two   sink_2_26(const          A&);
+six   sink_2_26(const          A&&);
 
 int test2_26()
 {
@@ -259,19 +217,15 @@ int test2_26()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_2_26(va);           // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 262 }
-    sink_2_26(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 264 }
-    sink_2_26(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 266 }
-    sink_2_26(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 268 }
+    sink_2_26(va);           // { dg-error "" }
+    sink_2_26(cva);          // { dg-error "" }
+    sink_2_26(v_source());   // { dg-error "" }
+    sink_2_26(cv_source());  // { dg-error "" }
     return 0;
 }
 
-two   sink_2_27(const          A&);  // { dg-message "two sink_2_27|no known conversion" }
-seven sink_2_27(volatile       A&&);  // { dg-message "note|argument" }
+two   sink_2_27(const          A&);
+seven sink_2_27(volatile       A&&);
 
 int test2_27()
 {
@@ -279,16 +233,14 @@ int test2_27()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_2_27(va);	     // { dg-error "lvalue" }
-    sink_2_27(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 283 }
-    sink_2_27(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 285 }
+    sink_2_27(va);	     // { dg-error "" }
+    sink_2_27(cva);          // { dg-error "" }
+    sink_2_27(cv_source());  // { dg-error "" }
     return 0;
 }
 
 two   sink_2_28(const          A&);
-eight sink_2_28(const volatile A&&); // { dg-message "argument" }
+eight sink_2_28(const volatile A&&);
 
 int test2_28()
 {
@@ -296,12 +248,12 @@ int test2_28()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_2_28(va);		// { dg-error "lvalue" }
-    sink_2_28(cva);		// { dg-error "lvalue" }
+    sink_2_28(va);		// { dg-error "" }
+    sink_2_28(cva);		// { dg-error "" }
 }
 
-three sink_2_35(volatile       A&);  // { dg-message "three sink_2_35|no known conversion" }
-five  sink_2_35(               A&&);  // { dg-message "note|argument" }
+three sink_2_35(volatile       A&);
+five  sink_2_35(               A&&);
 
 int test2_35()
 {
@@ -309,21 +261,16 @@ int test2_35()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_2_35(ca);           // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 312 }
-    sink_2_35(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 314 }
-    sink_2_35(c_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 316 }
-    sink_2_35(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 318 }
-    sink_2_35(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 320 }
+    sink_2_35(ca);           // { dg-error "" }
+    sink_2_35(cva);          // { dg-error "" }
+    sink_2_35(c_source());   // { dg-error "" }
+    sink_2_35(v_source());   // { dg-error "" }
+    sink_2_35(cv_source());  // { dg-error "" }
     return 0;
 }
 
-three sink_2_36(volatile       A&);  // { dg-message "three sink_2_36|no known conversion" }
-six   sink_2_36(const          A&&);  // { dg-message "note|argument" }
+three sink_2_36(volatile       A&);
+six   sink_2_36(const          A&&);
 
 int test2_36()
 {
@@ -331,18 +278,15 @@ int test2_36()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_2_36(ca);		// { dg-error "lvalue" }
-    sink_2_36(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 335 }
-    sink_2_36(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 337 }
-    sink_2_36(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 339 }
+    sink_2_36(ca);		// { dg-error "" }
+    sink_2_36(cva);          // { dg-error "" }
+    sink_2_36(v_source());   // { dg-error "" }
+    sink_2_36(cv_source());  // { dg-error "" }
     return 0;
 }
 
-three sink_2_37(volatile       A&);  // { dg-message "three sink_2_37|no known conversion" }
-seven sink_2_37(volatile       A&&);  // { dg-message "note|argument" }
+three sink_2_37(volatile       A&);
+seven sink_2_37(volatile       A&&);
 
 int test2_37()
 {
@@ -350,19 +294,15 @@ int test2_37()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_2_37(ca);           // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 353 }
-    sink_2_37(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 355 }
-    sink_2_37(c_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 357 }
-    sink_2_37(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 359 }
+    sink_2_37(ca);           // { dg-error "" }
+    sink_2_37(cva);          // { dg-error "" }
+    sink_2_37(c_source());   // { dg-error "" }
+    sink_2_37(cv_source());  // { dg-error "" }
     return 0;
 }
 
 three sink_2_38(volatile       A&);
-eight sink_2_38(const volatile A&&); // { dg-message "argument" }
+eight sink_2_38(const volatile A&&);
 
 int test2_38()
 {
@@ -370,12 +310,12 @@ int test2_38()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_2_38(ca);		// { dg-error "lvalue" }
-    sink_2_38(cva);		// { dg-error "lvalue" }
+    sink_2_38(ca);		// { dg-error "" }
+    sink_2_38(cva);		// { dg-error "" }
 }
 
-four  sink_2_45(const volatile A&);   // { dg-message "note" }
-five  sink_2_45(               A&&);  // { dg-message "note|argument" }
+four  sink_2_45(const volatile A&);
+five  sink_2_45(               A&&);
 
 int test2_45()
 {
@@ -383,17 +323,14 @@ int test2_45()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_2_45(c_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 386 }
-    sink_2_45(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 388 }
-    sink_2_45(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 390 }
+    sink_2_45(c_source());   // { dg-error "" }
+    sink_2_45(v_source());   // { dg-error "" }
+    sink_2_45(cv_source());  // { dg-error "" }
     return 0;
 }
 
-four  sink_2_46(const volatile A&);   // { dg-message "note" }
-six   sink_2_46(const          A&&);  // { dg-message "note|argument" }
+four  sink_2_46(const volatile A&);
+six   sink_2_46(const          A&&);
 
 int test2_46()
 {
@@ -401,15 +338,13 @@ int test2_46()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_2_46(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 404 }
-    sink_2_46(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 406 }
+    sink_2_46(v_source());   // { dg-error "" }
+    sink_2_46(cv_source());  // { dg-error "" }
     return 0;
 }
 
-four  sink_2_47(const volatile A&);   // { dg-message "note" }
-seven sink_2_47(volatile       A&&);  // { dg-message "note|argument" }
+four  sink_2_47(const volatile A&);
+seven sink_2_47(volatile       A&&);
 
 int test2_47()
 {
@@ -417,15 +352,13 @@ int test2_47()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_2_47(c_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 420 }
-    sink_2_47(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 422 }
+    sink_2_47(c_source());   // { dg-error "" }
+    sink_2_47(cv_source());  // { dg-error "" }
     return 0;
 }
 
-five  sink_2_56(               A&&);  // { dg-message "note|argument" }
-six   sink_2_56(const          A&&);  // { dg-message "note|argument" }
+five  sink_2_56(               A&&);
+six   sink_2_56(const          A&&);
 
 int test2_56()
 {
@@ -433,21 +366,17 @@ int test2_56()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_2_56(a);		// { dg-error "lvalue" }
-    sink_2_56(ca);		// { dg-error "lvalue" }
-    sink_2_56(va);           // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 438 }
-    sink_2_56(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 440 }
-    sink_2_56(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 442 }
-    sink_2_56(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 444 }
+    sink_2_56(a);		// { dg-error "" }
+    sink_2_56(ca);		// { dg-error "" }
+    sink_2_56(va);           // { dg-error "" }
+    sink_2_56(cva);          // { dg-error "" }
+    sink_2_56(v_source());   // { dg-error "" }
+    sink_2_56(cv_source());  // { dg-error "" }
     return 0;
 }
 
-five  sink_2_57(               A&&);  // { dg-message "note|argument" }
-seven sink_2_57(volatile       A&&);  // { dg-message "note|argument" }
+five  sink_2_57(               A&&);
+seven sink_2_57(volatile       A&&);
 
 int test2_57()
 {
@@ -455,21 +384,17 @@ int test2_57()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_2_57(a);		// { dg-error "lvalue" }
-    sink_2_57(va);		// { dg-error "lvalue" }
-    sink_2_57(ca);           // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 460 }
-    sink_2_57(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 462 }
-    sink_2_57(c_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 464 }
-    sink_2_57(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 466 }
+    sink_2_57(a);		// { dg-error "" }
+    sink_2_57(va);		// { dg-error "" }
+    sink_2_57(ca);           // { dg-error "" }
+    sink_2_57(cva);          // { dg-error "" }
+    sink_2_57(c_source());   // { dg-error "" }
+    sink_2_57(cv_source());  // { dg-error "" }
     return 0;
 }
 
-five  sink_2_58(               A&&); // { dg-message "argument" }
-eight sink_2_58(const volatile A&&); // { dg-message "argument" }
+five  sink_2_58(               A&&);
+eight sink_2_58(const volatile A&&);
 
 int test2_58()
 {
@@ -477,14 +402,14 @@ int test2_58()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_2_58(a);		// { dg-error "lvalue" }
-    sink_2_58(ca);		// { dg-error "lvalue" }
-    sink_2_58(va);		// { dg-error "lvalue" }
-    sink_2_58(cva);		// { dg-error "lvalue" }
+    sink_2_58(a);		// { dg-error "" }
+    sink_2_58(ca);		// { dg-error "" }
+    sink_2_58(va);		// { dg-error "" }
+    sink_2_58(cva);		// { dg-error "" }
 }
 
-six   sink_2_67(const          A&&);  // { dg-message "note|argument" }
-seven sink_2_67(volatile       A&&);  // { dg-message "note|argument" }
+six   sink_2_67(const          A&&);
+seven sink_2_67(volatile       A&&);
 
 int test2_67()
 {
@@ -492,21 +417,17 @@ int test2_67()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_2_67(a);            // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 495 }
-    sink_2_67(ca);	     // { dg-error "lvalue" }
-    sink_2_67(va);	     // { dg-error "lvalue" }
-    sink_2_67(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 499 }
-    sink_2_67(source());     // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 501 }
-    sink_2_67(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 503 }
+    sink_2_67(a);            // { dg-error "" }
+    sink_2_67(ca);	     // { dg-error "" }
+    sink_2_67(va);	     // { dg-error "" }
+    sink_2_67(cva);          // { dg-error "" }
+    sink_2_67(source());     // { dg-error "" }
+    sink_2_67(cv_source());  // { dg-error "" }
     return 0;
 }
 
-six   sink_2_68(const          A&&); // { dg-message "argument" }
-eight sink_2_68(const volatile A&&); // { dg-message "argument" }
+six   sink_2_68(const          A&&);
+eight sink_2_68(const volatile A&&);
 
 int test2_68()
 {
@@ -514,14 +435,14 @@ int test2_68()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_2_68(a);		// { dg-error "lvalue" }
-    sink_2_68(ca);		// { dg-error "lvalue" }
-    sink_2_68(va);		// { dg-error "lvalue" }
-    sink_2_68(cva);		// { dg-error "lvalue" }
+    sink_2_68(a);		// { dg-error "" }
+    sink_2_68(ca);		// { dg-error "" }
+    sink_2_68(va);		// { dg-error "" }
+    sink_2_68(cva);		// { dg-error "" }
 }
 
-seven sink_2_78(volatile       A&&); // { dg-message "argument" }
-eight sink_2_78(const volatile A&&); // { dg-message "argument" }
+seven sink_2_78(volatile       A&&);
+eight sink_2_78(const volatile A&&);
 
 int test2_78()
 {
@@ -529,10 +450,10 @@ int test2_78()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_2_78(a);		// { dg-error "lvalue" }
-    sink_2_78(ca);		// { dg-error "lvalue" }
-    sink_2_78(va);		// { dg-error "lvalue" }
-    sink_2_78(cva);		// { dg-error "lvalue" }
+    sink_2_78(a);		// { dg-error "" }
+    sink_2_78(ca);		// { dg-error "" }
+    sink_2_78(va);		// { dg-error "" }
+    sink_2_78(cva);		// { dg-error "" }
 }
 
 int main()
diff --git a/gcc/testsuite/g++.dg/cpp0x/rv3n.C b/gcc/testsuite/g++.dg/cpp0x/rv3n.C
index 3a729cb..8a1730b 100644
--- a/gcc/testsuite/g++.dg/cpp0x/rv3n.C
+++ b/gcc/testsuite/g++.dg/cpp0x/rv3n.C
@@ -30,9 +30,9 @@ const volatile A cv_source();
 
 // 3 at a time
 
-one   sink_3_123(               A&);  // { dg-message "one sink_3_123|no known conversion" }
-two   sink_3_123(const          A&);  // { dg-message "two sink_3_123|no known conversion" }
-three sink_3_123(volatile       A&);  // { dg-message "three sink_3_123|no known conversion" }
+one   sink_3_123(               A&);
+two   sink_3_123(const          A&);
+three sink_3_123(volatile       A&);
 
 int test3_123()
 {
@@ -40,22 +40,19 @@ int test3_123()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_3_123(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 43 }
-    sink_3_123(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 45 }
-    sink_3_123(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 47 }
+    sink_3_123(cva);          // { dg-error "" }
+    sink_3_123(v_source());   // { dg-error "" }
+    sink_3_123(cv_source());  // { dg-error "" }
     return 0;
 }
 
-one   sink_3_125(               A&);  // { dg-message "one sink_3_125|no known conversion" }
-two   sink_3_125(const          A&);  // { dg-message "two sink_3_125|no known conversion" }
-five  sink_3_125(               A&&);  // { dg-message "five sink_3_125|no known conversion" }
+one   sink_3_125(               A&);
+two   sink_3_125(const          A&);
+five  sink_3_125(               A&&);
 
-one   sink_3_124(               A&);  // { dg-message "one sink_3_124|no known conversion" }
-two   sink_3_124(const          A&);  // { dg-message "two sink_3_124|no known conversion" }
-four  sink_3_124(const volatile A&);  // { dg-message "four sink_3_124|no known conversion" }
+one   sink_3_124(               A&);
+two   sink_3_124(const          A&);
+four  sink_3_124(const volatile A&);
 
 int test3_124()
 {
@@ -63,10 +60,8 @@ int test3_124()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_3_124(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 66 }
-    sink_3_124(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 68 }
+    sink_3_124(v_source());   // { dg-error "" }
+    sink_3_124(cv_source());  // { dg-error "" }
     return 0;
 }
 
@@ -76,20 +71,16 @@ int test3_125()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_3_125(va);           // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 79 }
-    sink_3_125(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 81 }
-    sink_3_125(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 83 }
-    sink_3_125(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 85 }
+    sink_3_125(va);           // { dg-error "" }
+    sink_3_125(cva);          // { dg-error "" }
+    sink_3_125(v_source());   // { dg-error "" }
+    sink_3_125(cv_source());  // { dg-error "" }
     return 0;
 }
 
-one   sink_3_126(               A&);  // { dg-message "one sink_3_126|no known conversion" }
-two   sink_3_126(const          A&);  // { dg-message "two sink_3_126|no known conversion" }
-six   sink_3_126(const          A&&);  // { dg-message "six sink_3_126|no known conversion" }
+one   sink_3_126(               A&);
+two   sink_3_126(const          A&);
+six   sink_3_126(const          A&&);
 
 int test3_126()
 {
@@ -97,20 +88,16 @@ int test3_126()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_3_126(va);           // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 100 }
-    sink_3_126(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 102 }
-    sink_3_126(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 104 }
-    sink_3_126(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 106 }
+    sink_3_126(va);           // { dg-error "" }
+    sink_3_126(cva);          // { dg-error "" }
+    sink_3_126(v_source());   // { dg-error "" }
+    sink_3_126(cv_source());  // { dg-error "" }
     return 0;
 }
 
-one   sink_3_127(               A&);  // { dg-message "one sink_3_127|no known conversion" }
-two   sink_3_127(const          A&);  // { dg-message "two sink_3_127|no known conversion" }
-seven sink_3_127(volatile       A&&);  // { dg-message "seven sink_3_127|no known conversion" }
+one   sink_3_127(               A&);
+two   sink_3_127(const          A&);
+seven sink_3_127(volatile       A&&);
 
 int test3_127()
 {
@@ -118,17 +105,15 @@ int test3_127()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_3_127(va);		// { dg-error "lvalue" }
-    sink_3_127(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 122 }
-    sink_3_127(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 124 }
+    sink_3_127(va);		// { dg-error "" }
+    sink_3_127(cva);          // { dg-error "" }
+    sink_3_127(cv_source());  // { dg-error "" }
     return 0;
 }
 
 one   sink_3_128(               A&);
 two   sink_3_128(const          A&);
-eight sink_3_128(const volatile A&&); // { dg-message "" }
+eight sink_3_128(const volatile A&&);
 
 int test3_128()
 {
@@ -137,13 +122,13 @@ int test3_128()
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
 
-    sink_3_128(va);		// { dg-error "lvalue" }
-    sink_3_128(cva);		// { dg-error "lvalue" }
+    sink_3_128(va);		// { dg-error "" }
+    sink_3_128(cva);		// { dg-error "" }
 }
 
-one   sink_3_134(               A&);  // { dg-message "one sink_3_134|no known conversion" }
-three sink_3_134(volatile       A&);  // { dg-message "three sink_3_134|no known conversion" }
-four  sink_3_134(const volatile A&);  // { dg-message "four sink_3_134|no known conversion" }
+one   sink_3_134(               A&);
+three sink_3_134(volatile       A&);
+four  sink_3_134(const volatile A&);
 
 int test3_134()
 {
@@ -151,20 +136,16 @@ int test3_134()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_3_134(source());     // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 154 }
-    sink_3_134(c_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 156 }
-    sink_3_134(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 158 }
-    sink_3_134(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 160 }
+    sink_3_134(source());     // { dg-error "" }
+    sink_3_134(c_source());   // { dg-error "" }
+    sink_3_134(v_source());   // { dg-error "" }
+    sink_3_134(cv_source());  // { dg-error "" }
     return 0;
 }
 
-one   sink_3_135(               A&);  // { dg-message "one sink_3_135|no known conversion" }
-three sink_3_135(volatile       A&);  // { dg-message "three sink_3_135|no known conversion" }
-five  sink_3_135(               A&&);  // { dg-message "five sink_3_135|no known conversion" }
+one   sink_3_135(               A&);
+three sink_3_135(volatile       A&);
+five  sink_3_135(               A&&);
 
 int test3_135()
 {
@@ -172,22 +153,17 @@ int test3_135()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_3_135(ca);           // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 175 }
-    sink_3_135(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 177 }
-    sink_3_135(c_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 179 }
-    sink_3_135(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 181 }
-    sink_3_135(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 183 }
+    sink_3_135(ca);           // { dg-error "" }
+    sink_3_135(cva);          // { dg-error "" }
+    sink_3_135(c_source());   // { dg-error "" }
+    sink_3_135(v_source());   // { dg-error "" }
+    sink_3_135(cv_source());  // { dg-error "" }
     return 0;
 }
 
-one   sink_3_136(               A&);  // { dg-message "one sink_3_136|no known conversion" }
-three sink_3_136(volatile       A&);  // { dg-message "note" }
-six   sink_3_136(const          A&&);  // { dg-message "" }
+one   sink_3_136(               A&);
+three sink_3_136(volatile       A&);
+six   sink_3_136(const          A&&);
 
 int test3_136()
 {
@@ -195,19 +171,16 @@ int test3_136()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_3_136(ca);		// { dg-error "lvalue" }
-    sink_3_136(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 199 }
-    sink_3_136(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 201 }
-    sink_3_136(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 203 }
+    sink_3_136(ca);		// { dg-error "" }
+    sink_3_136(cva);          // { dg-error "" }
+    sink_3_136(v_source());   // { dg-error "" }
+    sink_3_136(cv_source());  // { dg-error "" }
     return 0;
 }
 
-one   sink_3_137(               A&);  // { dg-message "one sink_3_137|no known conversion" }
-three sink_3_137(volatile       A&);  // { dg-message "note" }
-seven sink_3_137(volatile       A&&);  // { dg-message "note" }
+one   sink_3_137(               A&);
+three sink_3_137(volatile       A&);
+seven sink_3_137(volatile       A&&);
 
 int test3_137()
 {
@@ -215,20 +188,16 @@ int test3_137()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_3_137(ca);           // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 218 }
-    sink_3_137(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 220 }
-    sink_3_137(c_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 222 }
-    sink_3_137(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 224 }
+    sink_3_137(ca);           // { dg-error "" }
+    sink_3_137(cva);          // { dg-error "" }
+    sink_3_137(c_source());   // { dg-error "" }
+    sink_3_137(cv_source());  // { dg-error "" }
     return 0;
 }
 
 one   sink_3_138(               A&);
 three sink_3_138(volatile       A&);
-eight sink_3_138(const volatile A&&); // { dg-message "" }
+eight sink_3_138(const volatile A&&);
 
 int test3_138()
 {
@@ -236,14 +205,14 @@ int test3_138()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_3_138(ca);		// { dg-error "lvalue" }
-    sink_3_138(cva);		// { dg-error "lvalue" }
+    sink_3_138(ca);		// { dg-error "" }
+    sink_3_138(cva);		// { dg-error "" }
     return 0;
 }
 
-one   sink_3_145(               A&);  // { dg-message "one sink_3_145|no known conversion" }
-four  sink_3_145(const volatile A&);  // { dg-message "note" }
-five  sink_3_145(               A&&);  // { dg-message "note" }
+one   sink_3_145(               A&);
+four  sink_3_145(const volatile A&);
+five  sink_3_145(               A&&);
 
 int test3_145()
 {
@@ -251,18 +220,15 @@ int test3_145()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_3_145(c_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 254 }
-    sink_3_145(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 256 }
-    sink_3_145(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 258 }
+    sink_3_145(c_source());   // { dg-error "" }
+    sink_3_145(v_source());   // { dg-error "" }
+    sink_3_145(cv_source());  // { dg-error "" }
     return 0;
 }
 
-one   sink_3_146(               A&);  // { dg-message "one sink_3_146|no known conversion" }
-four  sink_3_146(const volatile A&);  // { dg-message "note" }
-six   sink_3_146(const          A&&);  // { dg-message "note" }
+one   sink_3_146(               A&);
+four  sink_3_146(const volatile A&);
+six   sink_3_146(const          A&&);
 
 int test3_146()
 {
@@ -270,16 +236,14 @@ int test3_146()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_3_146(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 273 }
-    sink_3_146(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 275 }
+    sink_3_146(v_source());   // { dg-error "" }
+    sink_3_146(cv_source());  // { dg-error "" }
     return 0;
 }
 
-one   sink_3_147(               A&);  // { dg-message "one sink_3_147|no known conversion" }
-four  sink_3_147(const volatile A&);  // { dg-message "note" }
-seven sink_3_147(volatile       A&&);  // { dg-message "note" }
+one   sink_3_147(               A&);
+four  sink_3_147(const volatile A&);
+seven sink_3_147(volatile       A&&);
 
 int test3_147()
 {
@@ -287,16 +251,14 @@ int test3_147()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_3_147(c_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 290 }
-    sink_3_147(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 292 }
+    sink_3_147(c_source());   // { dg-error "" }
+    sink_3_147(cv_source());  // { dg-error "" }
     return 0;
 }
 
-one   sink_3_156(               A&);  // { dg-message "one sink_3_156|no known conversion" }
-five  sink_3_156(               A&&);  // { dg-message "note" }
-six   sink_3_156(const          A&&);  // { dg-message "" }
+one   sink_3_156(               A&);
+five  sink_3_156(               A&&);
+six   sink_3_156(const          A&&);
 
 int test3_156()
 {
@@ -304,21 +266,17 @@ int test3_156()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_3_156(ca);		// { dg-error "lvalue" }
-    sink_3_156(va);           // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 308 }
-    sink_3_156(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 310 }
-    sink_3_156(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 312 }
-    sink_3_156(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 314 }
+    sink_3_156(ca);		// { dg-error "" }
+    sink_3_156(va);           // { dg-error "" }
+    sink_3_156(cva);          // { dg-error "" }
+    sink_3_156(v_source());   // { dg-error "" }
+    sink_3_156(cv_source());  // { dg-error "" }
     return 0;
 }
 
-one   sink_3_157(               A&);  // { dg-message "one sink_3_157|no known conversion" }
-five  sink_3_157(               A&&);  // { dg-message "note" }
-seven sink_3_157(volatile       A&&);  // { dg-message "" }
+one   sink_3_157(               A&);
+five  sink_3_157(               A&&);
+seven sink_3_157(volatile       A&&);
 
 int test3_157()
 {
@@ -326,21 +284,17 @@ int test3_157()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_3_157(ca);           // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 329 }
-    sink_3_157(va);	      // { dg-error "lvalue" }
-    sink_3_157(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 332 }
-    sink_3_157(c_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 334 }
-    sink_3_157(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 336 }
+    sink_3_157(ca);           // { dg-error "" }
+    sink_3_157(va);	      // { dg-error "" }
+    sink_3_157(cva);          // { dg-error "" }
+    sink_3_157(c_source());   // { dg-error "" }
+    sink_3_157(cv_source());  // { dg-error "" }
     return 0;
 }
 
 one   sink_3_158(               A&);
 five  sink_3_158(               A&&);
-eight sink_3_158(const volatile A&&); // { dg-message "" }
+eight sink_3_158(const volatile A&&);
 
 int test3_158()
 {
@@ -348,15 +302,15 @@ int test3_158()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_3_158(ca);		// { dg-error "lvalue" }
-    sink_3_158(va);		// { dg-error "lvalue" }
-    sink_3_158(cva);		// { dg-error "lvalue" }
+    sink_3_158(ca);		// { dg-error "" }
+    sink_3_158(va);		// { dg-error "" }
+    sink_3_158(cva);		// { dg-error "" }
     return 0;
 }
 
-one   sink_3_167(               A&);  // { dg-message "one sink_3_167|no known conversion" }
-six   sink_3_167(const          A&&);  // { dg-message "" }
-seven sink_3_167(volatile       A&&);  // { dg-message "" }
+one   sink_3_167(               A&);
+six   sink_3_167(const          A&&);
+seven sink_3_167(volatile       A&&);
 
 int test3_167()
 {
@@ -364,20 +318,17 @@ int test3_167()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_3_167(ca);		// { dg-error "lvalue" }
-    sink_3_167(va);		// { dg-error "lvalue" }
-    sink_3_167(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 369 }
-    sink_3_167(source());     // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 371 }
-    sink_3_167(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 373 }
+    sink_3_167(ca);		// { dg-error "" }
+    sink_3_167(va);		// { dg-error "" }
+    sink_3_167(cva);          // { dg-error "" }
+    sink_3_167(source());     // { dg-error "" }
+    sink_3_167(cv_source());  // { dg-error "" }
     return 0;
 }
 
 one   sink_3_168(               A&);
-six   sink_3_168(const          A&&); // { dg-message "" }
-eight sink_3_168(const volatile A&&); // { dg-message "" }
+six   sink_3_168(const          A&&);
+eight sink_3_168(const volatile A&&);
 
 int test3_168()
 {
@@ -385,15 +336,15 @@ int test3_168()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_3_168(ca);		// { dg-error "lvalue" }
-    sink_3_168(va);		// { dg-error "lvalue" }
-    sink_3_168(cva);		// { dg-error "lvalue" }
+    sink_3_168(ca);		// { dg-error "" }
+    sink_3_168(va);		// { dg-error "" }
+    sink_3_168(cva);		// { dg-error "" }
     return 0;
 }
 
 one   sink_3_178(               A&);
-seven sink_3_178(volatile       A&&); // { dg-message "" }
-eight sink_3_178(const volatile A&&); // { dg-message "" }
+seven sink_3_178(volatile       A&&);
+eight sink_3_178(const volatile A&&);
 
 int test3_178()
 {
@@ -401,15 +352,15 @@ int test3_178()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_3_178(ca);		// { dg-error "lvalue" }
-    sink_3_178(va);		// { dg-error "lvalue" }
-    sink_3_178(cva);		// { dg-error "lvalue" }
+    sink_3_178(ca);		// { dg-error "" }
+    sink_3_178(va);		// { dg-error "" }
+    sink_3_178(cva);		// { dg-error "" }
     return 0;
 }
 
-two   sink_3_234(const          A&);  // { dg-message "two sink_3_234|no known conversion" }
-three sink_3_234(volatile       A&);  // { dg-message "note" }
-four  sink_3_234(const volatile A&);  // { dg-message "note" }
+two   sink_3_234(const          A&);
+three sink_3_234(volatile       A&);
+four  sink_3_234(const volatile A&);
 
 int test3_234()
 {
@@ -417,18 +368,15 @@ int test3_234()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_3_234(a);            // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 420 }
-    sink_3_234(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 422 }
-    sink_3_234(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 424 }
+    sink_3_234(a);            // { dg-error "" }
+    sink_3_234(v_source());   // { dg-error "" }
+    sink_3_234(cv_source());  // { dg-error "" }
     return 0;
 }
 
-two   sink_3_235(const          A&);  // { dg-message "two sink_3_235|no known conversion" }
-three sink_3_235(volatile       A&);  // { dg-message "note" }
-five  sink_3_235(               A&&);  // { dg-message "note" }
+two   sink_3_235(const          A&);
+three sink_3_235(volatile       A&);
+five  sink_3_235(               A&&);
 
 int test3_235()
 {
@@ -436,20 +384,16 @@ int test3_235()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_3_235(a);            // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 439 }
-    sink_3_235(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 441 }
-    sink_3_235(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 443 }
-    sink_3_235(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 445 }
+    sink_3_235(a);            // { dg-error "" }
+    sink_3_235(cva);          // { dg-error "" }
+    sink_3_235(v_source());   // { dg-error "" }
+    sink_3_235(cv_source());  // { dg-error "" }
     return 0;
 }
 
-two   sink_3_236(const          A&);  // { dg-message "two sink_3_236|no known conversion" }
-three sink_3_236(volatile       A&);  // { dg-message "note" }
-six   sink_3_236(const          A&&);  // { dg-message "note" }
+two   sink_3_236(const          A&);
+three sink_3_236(volatile       A&);
+six   sink_3_236(const          A&&);
 
 int test3_236()
 {
@@ -457,20 +401,16 @@ int test3_236()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_3_236(a);            // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 460 }
-    sink_3_236(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 462 }
-    sink_3_236(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 464 }
-    sink_3_236(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 466 }
+    sink_3_236(a);            // { dg-error "" }
+    sink_3_236(cva);          // { dg-error "" }
+    sink_3_236(v_source());   // { dg-error "" }
+    sink_3_236(cv_source());  // { dg-error "" }
     return 0;
 }
 
-two   sink_3_237(const          A&);  // { dg-message "two sink_3_237|no known conversion" }
-three sink_3_237(volatile       A&);  // { dg-message "note" }
-seven sink_3_237(volatile       A&&);  // { dg-message "note" }
+two   sink_3_237(const          A&);
+three sink_3_237(volatile       A&);
+seven sink_3_237(volatile       A&&);
 
 int test3_237()
 {
@@ -478,18 +418,15 @@ int test3_237()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_3_237(a);            // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 481 }
-    sink_3_237(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 483 }
-    sink_3_237(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 485 }
+    sink_3_237(a);            // { dg-error "" }
+    sink_3_237(cva);          // { dg-error "" }
+    sink_3_237(cv_source());  // { dg-error "" }
     return 0;
 }
 
-two   sink_3_238(const          A&);  // { dg-message "two sink_3_238|no known conversion" }
-three sink_3_238(volatile       A&);  // { dg-message "three sink_3_238|no known conversion" }
-eight sink_3_238(const volatile A&&);  // { dg-message "eight sink_3_238|no known conversion" }
+two   sink_3_238(const          A&);
+three sink_3_238(volatile       A&);
+eight sink_3_238(const volatile A&&);
 
 int test3_238()
 {
@@ -497,15 +434,14 @@ int test3_238()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_3_238(a);  // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 500 }
-    sink_3_238(cva); // { dg-error "lvalue" }
+    sink_3_238(a);  // { dg-error "" }
+    sink_3_238(cva); // { dg-error "" }
     return 0;
 }
 
-two   sink_3_245(const          A&);  // { dg-message "two sink_3_245|no known conversion" }
-four  sink_3_245(const volatile A&);  // { dg-message "four sink_3_245|no known conversion" }
-five  sink_3_245(               A&&);  // { dg-message "five sink_3_245|no known conversion" }
+two   sink_3_245(const          A&);
+four  sink_3_245(const volatile A&);
+five  sink_3_245(               A&&);
 
 int test3_245()
 {
@@ -513,16 +449,14 @@ int test3_245()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_3_245(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 516 }
-    sink_3_245(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 518 }
+    sink_3_245(v_source());   // { dg-error "" }
+    sink_3_245(cv_source());  // { dg-error "" }
     return 0;
 }
 
-two   sink_3_246(const          A&);  // { dg-message "two sink_3_246|no known conversion" }
-four  sink_3_246(const volatile A&);  // { dg-message "four sink_3_246|no known conversion" }
-six   sink_3_246(const          A&&);  // { dg-message "six sink_3_246|no known conversion" }
+two   sink_3_246(const          A&);
+four  sink_3_246(const volatile A&);
+six   sink_3_246(const          A&&);
 
 int test3_246()
 {
@@ -530,16 +464,14 @@ int test3_246()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_3_246(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 533 }
-    sink_3_246(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 535 }
+    sink_3_246(v_source());   // { dg-error "" }
+    sink_3_246(cv_source());  // { dg-error "" }
     return 0;
 }
 
-two   sink_3_247(const          A&);  // { dg-message "two sink_3_247|no known conversion" }
-four  sink_3_247(const volatile A&);  // { dg-message "four sink_3_247|no known conversion" }
-seven sink_3_247(volatile       A&&);  // { dg-message "seven sink_3_247|no known conversion" }
+two   sink_3_247(const          A&);
+four  sink_3_247(const volatile A&);
+seven sink_3_247(volatile       A&&);
 
 int test3_247()
 {
@@ -547,14 +479,13 @@ int test3_247()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_3_247(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 550 }
+    sink_3_247(cv_source());  // { dg-error "" }
     return 0;
 }
 
-two   sink_3_256(const          A&);  // { dg-message "two sink_3_256|no known conversion" }
-five  sink_3_256(               A&&);  // { dg-message "five sink_3_256|no known conversion" }
-six   sink_3_256(const          A&&);  // { dg-message "six sink_3_256|no known conversion" }
+two   sink_3_256(const          A&);
+five  sink_3_256(               A&&);
+six   sink_3_256(const          A&&);
 
 int test3_256()
 {
@@ -562,20 +493,16 @@ int test3_256()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_3_256(va);           // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 565 }
-    sink_3_256(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 567 }
-    sink_3_256(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 569 }
-    sink_3_256(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 571 }
+    sink_3_256(va);           // { dg-error "" }
+    sink_3_256(cva);          // { dg-error "" }
+    sink_3_256(v_source());   // { dg-error "" }
+    sink_3_256(cv_source());  // { dg-error "" }
     return 0;
 }
 
-two   sink_3_257(const          A&);  // { dg-message "two sink_3_257|no known conversion" }
-five  sink_3_257(               A&&);  // { dg-message "five sink_3_257|no known conversion" }
-seven sink_3_257(volatile       A&&);  // { dg-message "seven sink_3_257|no known conversion" }
+two   sink_3_257(const          A&);
+five  sink_3_257(               A&&);
+seven sink_3_257(volatile       A&&);
 
 int test3_257()
 {
@@ -583,17 +510,15 @@ int test3_257()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_3_257(va);		// { dg-error "lvalue" }
-    sink_3_257(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 587 }
-    sink_3_257(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 589 }
+    sink_3_257(va);		// { dg-error "" }
+    sink_3_257(cva);          // { dg-error "" }
+    sink_3_257(cv_source());  // { dg-error "" }
     return 0;
 }
 
 two   sink_3_258(const          A&);
 five  sink_3_258(               A&&);
-eight sink_3_258(const volatile A&&); // { dg-message "" }
+eight sink_3_258(const volatile A&&);
 
 int test3_258()
 {
@@ -601,14 +526,14 @@ int test3_258()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_3_258(va);		// { dg-error "lvalue" }
-    sink_3_258(cva);		// { dg-error "lvalue" }
+    sink_3_258(va);		// { dg-error "" }
+    sink_3_258(cva);		// { dg-error "" }
     return 0;
 }
 
-two   sink_3_267(const          A&);  // { dg-message "two sink_3_267|no known conversion" }
-six   sink_3_267(const          A&&);  // { dg-message "six sink_3_267|no known conversion" }
-seven sink_3_267(volatile       A&&);  // { dg-message "seven sink_3_267|no known conversion" }
+two   sink_3_267(const          A&);
+six   sink_3_267(const          A&&);
+seven sink_3_267(volatile       A&&);
 
 int test3_267()
 {
@@ -616,19 +541,16 @@ int test3_267()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_3_267(va);		// { dg-error "lvalue" }
-    sink_3_267(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 620 }
-    sink_3_267(source());     // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 622 }
-    sink_3_267(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 624 }
+    sink_3_267(va);		// { dg-error "" }
+    sink_3_267(cva);          // { dg-error "" }
+    sink_3_267(source());     // { dg-error "" }
+    sink_3_267(cv_source());  // { dg-error "" }
     return 0;
 }
 
 two   sink_3_268(const          A&);
 six   sink_3_268(const          A&&);
-eight sink_3_268(const volatile A&&); // { dg-message "" }
+eight sink_3_268(const volatile A&&);
 
 int test3_268()
 {
@@ -636,14 +558,14 @@ int test3_268()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_3_268(va);		// { dg-error "lvalue" }
-    sink_3_268(cva);		// { dg-error "lvalue" }
+    sink_3_268(va);		// { dg-error "" }
+    sink_3_268(cva);		// { dg-error "" }
     return 0;
 }
 
 two   sink_3_278(const          A&);
-seven sink_3_278(volatile       A&&); // { dg-message "" }
-eight sink_3_278(const volatile A&&); // { dg-message "" }
+seven sink_3_278(volatile       A&&);
+eight sink_3_278(const volatile A&&);
 
 int test3_278()
 {
@@ -651,14 +573,14 @@ int test3_278()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_3_278(va);		// { dg-error "lvalue" }
-    sink_3_278(cva);		// { dg-error "lvalue" }
+    sink_3_278(va);		// { dg-error "" }
+    sink_3_278(cva);		// { dg-error "" }
     return 0;
 }
 
-three sink_3_345(volatile       A&);  // { dg-message "three sink_3_345|no known conversion" }
-four  sink_3_345(const volatile A&);  // { dg-message "four sink_3_345|no known conversion" }
-five  sink_3_345(               A&&);  // { dg-message "five sink_3_345|no known conversion" }
+three sink_3_345(volatile       A&);
+four  sink_3_345(const volatile A&);
+five  sink_3_345(               A&&);
 
 int test3_345()
 {
@@ -666,18 +588,15 @@ int test3_345()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_3_345(c_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 669 }
-    sink_3_345(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 671 }
-    sink_3_345(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 673 }
+    sink_3_345(c_source());   // { dg-error "" }
+    sink_3_345(v_source());   // { dg-error "" }
+    sink_3_345(cv_source());  // { dg-error "" }
     return 0;
 }
 
-three sink_3_346(volatile       A&);  // { dg-message "three sink_3_346|no known conversion" }
-four  sink_3_346(const volatile A&);  // { dg-message "four sink_3_346|no known conversion" }
-six   sink_3_346(const          A&&);  // { dg-message "six sink_3_346|no known conversion" }
+three sink_3_346(volatile       A&);
+four  sink_3_346(const volatile A&);
+six   sink_3_346(const          A&&);
 
 int test3_346()
 {
@@ -685,16 +604,14 @@ int test3_346()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_3_346(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 688 }
-    sink_3_346(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 690 }
+    sink_3_346(v_source());   // { dg-error "" }
+    sink_3_346(cv_source());  // { dg-error "" }
     return 0;
 }
 
-three sink_3_347(volatile       A&);  // { dg-message "three sink_3_347|no known conversion" }
-four  sink_3_347(const volatile A&);  // { dg-message "four sink_3_347|no known conversion" }
-seven sink_3_347(volatile       A&&);  // { dg-message "seven sink_3_347|no known conversion" }
+three sink_3_347(volatile       A&);
+four  sink_3_347(const volatile A&);
+seven sink_3_347(volatile       A&&);
 
 int test3_347()
 {
@@ -702,16 +619,14 @@ int test3_347()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_3_347(c_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 705 }
-    sink_3_347(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 707 }
+    sink_3_347(c_source());   // { dg-error "" }
+    sink_3_347(cv_source());  // { dg-error "" }
     return 0;
 }
 
-three sink_3_356(volatile       A&);  // { dg-message "three sink_3_356|no known conversion" }
-five  sink_3_356(               A&&);  // { dg-message "five sink_3_356|no known conversion" }
-six   sink_3_356(const          A&&);  // { dg-message "six sink_3_356|no known conversion" }
+three sink_3_356(volatile       A&);
+five  sink_3_356(               A&&);
+six   sink_3_356(const          A&&);
 
 int test3_356()
 {
@@ -719,19 +634,16 @@ int test3_356()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_3_356(ca);		// { dg-error "lvalue" }
-    sink_3_356(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 723 }
-    sink_3_356(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 725 }
-    sink_3_356(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 727 }
+    sink_3_356(ca);		// { dg-error "" }
+    sink_3_356(cva);          // { dg-error "" }
+    sink_3_356(v_source());   // { dg-error "" }
+    sink_3_356(cv_source());  // { dg-error "" }
     return 0;
 }
 
-three sink_3_357(volatile       A&);  // { dg-message "three sink_3_357|no known conversion" }
-five  sink_3_357(               A&&);  // { dg-message "five sink_3_357|no known conversion" }
-seven sink_3_357(volatile       A&&);  // { dg-message "seven sink_3_357|no known conversion" }
+three sink_3_357(volatile       A&);
+five  sink_3_357(               A&&);
+seven sink_3_357(volatile       A&&);
 
 int test3_357()
 {
@@ -739,20 +651,16 @@ int test3_357()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_3_357(ca);           // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 742 }
-    sink_3_357(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 744 }
-    sink_3_357(c_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 746 }
-    sink_3_357(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 748 }
+    sink_3_357(ca);           // { dg-error "" }
+    sink_3_357(cva);          // { dg-error "" }
+    sink_3_357(c_source());   // { dg-error "" }
+    sink_3_357(cv_source());  // { dg-error "" }
     return 0;
 }
 
 three sink_3_358(volatile       A&);
 five  sink_3_358(               A&&);
-eight sink_3_358(const volatile A&&); // { dg-message "" }
+eight sink_3_358(const volatile A&&);
 
 int test3_358()
 {
@@ -760,14 +668,14 @@ int test3_358()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_3_358(ca);		// { dg-error "lvalue" }
-    sink_3_358(cva);		// { dg-error "lvalue" }
+    sink_3_358(ca);		// { dg-error "" }
+    sink_3_358(cva);		// { dg-error "" }
     return 0;
 }
 
-three sink_3_367(volatile       A&);  // { dg-message "three sink_3_367|no known conversion" }
-six   sink_3_367(const          A&&);  // { dg-message "six sink_3_367|no known conversion" }
-seven sink_3_367(volatile       A&&);  // { dg-message "seven sink_3_367|no known conversion" }
+three sink_3_367(volatile       A&);
+six   sink_3_367(const          A&&);
+seven sink_3_367(volatile       A&&);
 
 int test3_367()
 {
@@ -775,19 +683,16 @@ int test3_367()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_3_367(ca);		// { dg-error "lvalue" }
-    sink_3_367(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 779 }
-    sink_3_367(source());     // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 781 }
-    sink_3_367(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 783 }
+    sink_3_367(ca);		// { dg-error "" }
+    sink_3_367(cva);          // { dg-error "" }
+    sink_3_367(source());     // { dg-error "" }
+    sink_3_367(cv_source());  // { dg-error "" }
     return 0;
 }
 
 three sink_3_368(volatile       A&);
-six   sink_3_368(const          A&&); // { dg-message "" }
-eight sink_3_368(const volatile A&&); // { dg-message "" }
+six   sink_3_368(const          A&&);
+eight sink_3_368(const volatile A&&);
 
 int test3_368()
 {
@@ -795,14 +700,14 @@ int test3_368()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_3_368(ca);		// { dg-error "lvalue" }
-    sink_3_368(cva);		// { dg-error "lvalue" }
+    sink_3_368(ca);		// { dg-error "" }
+    sink_3_368(cva);		// { dg-error "" }
     return 0;
 }
 
 three sink_3_378(volatile       A&);
 seven sink_3_378(volatile       A&&);
-eight sink_3_378(const volatile A&&); // { dg-message "" }
+eight sink_3_378(const volatile A&&);
 
 int test3_378()
 {
@@ -810,14 +715,14 @@ int test3_378()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_3_378(ca);		// { dg-error "lvalue" }
-    sink_3_378(cva);		// { dg-error "lvalue" }
+    sink_3_378(ca);		// { dg-error "" }
+    sink_3_378(cva);		// { dg-error "" }
     return 0;
 }
 
-four  sink_3_456(const volatile A&);  // { dg-message "note" }
-five  sink_3_456(               A&&);  // { dg-message "note" }
-six   sink_3_456(const          A&&);  // { dg-message "note" }
+four  sink_3_456(const volatile A&);
+five  sink_3_456(               A&&);
+six   sink_3_456(const          A&&);
 
 int test3_456()
 {
@@ -825,16 +730,14 @@ int test3_456()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_3_456(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 828 }
-    sink_3_456(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 830 }
+    sink_3_456(v_source());   // { dg-error "" }
+    sink_3_456(cv_source());  // { dg-error "" }
     return 0;
 }
 
-four  sink_3_457(const volatile A&);  // { dg-message "note" }
-five  sink_3_457(               A&&);  // { dg-message "note" }
-seven sink_3_457(volatile       A&&);  // { dg-message "note" }
+four  sink_3_457(const volatile A&);
+five  sink_3_457(               A&&);
+seven sink_3_457(volatile       A&&);
 
 int test3_457()
 {
@@ -842,16 +745,14 @@ int test3_457()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_3_457(c_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 845 }
-    sink_3_457(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 847 }
+    sink_3_457(c_source());   // { dg-error "" }
+    sink_3_457(cv_source());  // { dg-error "" }
     return 0;
 }
 
-four  sink_3_467(const volatile A&);  // { dg-message "note" }
-six   sink_3_467(const          A&&);  // { dg-message "note" }
-seven sink_3_467(volatile       A&&);  // { dg-message "note" }
+four  sink_3_467(const volatile A&);
+six   sink_3_467(const          A&&);
+seven sink_3_467(volatile       A&&);
 
 int test3_467()
 {
@@ -859,16 +760,14 @@ int test3_467()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_3_467(source());     // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 862 }
-    sink_3_467(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 864 }
+    sink_3_467(source());     // { dg-error "" }
+    sink_3_467(cv_source());  // { dg-error "" }
     return 0;
 }
 
-five  sink_3_567(               A&&);  // { dg-message "five sink_3_567|no known conversion" }
-six   sink_3_567(const          A&&);  // { dg-message "six sink_3_567|no known conversion" }
-seven sink_3_567(volatile       A&&);  // { dg-message "seven sink_3_567|no known conversion" }
+five  sink_3_567(               A&&);
+six   sink_3_567(const          A&&);
+seven sink_3_567(volatile       A&&);
 
 int test3_567()
 {
@@ -876,19 +775,17 @@ int test3_567()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_3_567(a);		// { dg-error "lvalue" }
-    sink_3_567(ca);		// { dg-error "lvalue" }
-    sink_3_567(va);		// { dg-error "lvalue" }
-    sink_3_567(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 882 }
-    sink_3_567(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 884 }
+    sink_3_567(a);		// { dg-error "" }
+    sink_3_567(ca);		// { dg-error "" }
+    sink_3_567(va);		// { dg-error "" }
+    sink_3_567(cva);          // { dg-error "" }
+    sink_3_567(cv_source());  // { dg-error "" }
     return 0;
 }
 
-five  sink_3_568(               A&&); // { dg-message "" }
-six   sink_3_568(const          A&&); // { dg-message "" }
-eight sink_3_568(const volatile A&&); // { dg-message "" }
+five  sink_3_568(               A&&);
+six   sink_3_568(const          A&&);
+eight sink_3_568(const volatile A&&);
 
 int test3_568()
 {
@@ -896,16 +793,16 @@ int test3_568()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_3_568(a);		// { dg-error "lvalue" }
-    sink_3_568(ca);		// { dg-error "lvalue" }
-    sink_3_568(va);		// { dg-error "lvalue" }
-    sink_3_568(cva);		// { dg-error "lvalue" }
+    sink_3_568(a);		// { dg-error "" }
+    sink_3_568(ca);		// { dg-error "" }
+    sink_3_568(va);		// { dg-error "" }
+    sink_3_568(cva);		// { dg-error "" }
     return 0;
 }
 
-five  sink_3_578(               A&&); // { dg-message "" }
-seven sink_3_578(volatile       A&&); // { dg-message "" }
-eight sink_3_578(const volatile A&&); // { dg-message "" }
+five  sink_3_578(               A&&);
+seven sink_3_578(volatile       A&&);
+eight sink_3_578(const volatile A&&);
 
 int test3_578()
 {
@@ -913,16 +810,16 @@ int test3_578()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_3_578(a);		// { dg-error "lvalue" }
-    sink_3_578(ca);		// { dg-error "lvalue" }
-    sink_3_578(va);		// { dg-error "lvalue" }
-    sink_3_578(cva);		// { dg-error "lvalue" }
+    sink_3_578(a);		// { dg-error "" }
+    sink_3_578(ca);		// { dg-error "" }
+    sink_3_578(va);		// { dg-error "" }
+    sink_3_578(cva);		// { dg-error "" }
     return 0;
 }
 
-six   sink_3_678(const          A&&);  // { dg-message "six sink_3_678|no known conversion" }
-seven sink_3_678(volatile       A&&);  // { dg-message "seven sink_3_678|no known conversion" }
-eight sink_3_678(const volatile A&&);  // { dg-message "eight sink_3_678|no known conversion" }
+six   sink_3_678(const          A&&);
+seven sink_3_678(volatile       A&&);
+eight sink_3_678(const volatile A&&);
 
 int test3_678()
 {
@@ -930,13 +827,11 @@ int test3_678()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_3_678(a);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 933 }
-    sink_3_678(ca);	    // { dg-error "lvalue" }
-    sink_3_678(va);	    // { dg-error "lvalue" }
-    sink_3_678(cva);	    // { dg-error "lvalue" }
-    sink_3_678(source());   // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 938 }
+    sink_3_678(a);          // { dg-error "" }
+    sink_3_678(ca);	    // { dg-error "" }
+    sink_3_678(va);	    // { dg-error "" }
+    sink_3_678(cva);	    // { dg-error "" }
+    sink_3_678(source());   // { dg-error "" }
     return 0;
 }
 
diff --git a/gcc/testsuite/g++.dg/cpp0x/rv4n.C b/gcc/testsuite/g++.dg/cpp0x/rv4n.C
index dc56afe..e64856d 100644
--- a/gcc/testsuite/g++.dg/cpp0x/rv4n.C
+++ b/gcc/testsuite/g++.dg/cpp0x/rv4n.C
@@ -30,10 +30,10 @@ const volatile A cv_source();
 
 // 4 at a time
 
-one   sink_4_1234(               A&);  // { dg-message "one sink_4_1234|no known conversion" }
-two   sink_4_1234(const          A&);  // { dg-message "note" }
-three sink_4_1234(volatile       A&);  // { dg-message "note" }
-four  sink_4_1234(const volatile A&);  // { dg-message "note" }
+one   sink_4_1234(               A&);
+two   sink_4_1234(const          A&);
+three sink_4_1234(volatile       A&);
+four  sink_4_1234(const volatile A&);
 
 int test4_1234()
 {
@@ -41,17 +41,15 @@ int test4_1234()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_1234(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 44 }
-    sink_4_1234(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 46 }
+    sink_4_1234(v_source());   // { dg-error "" }
+    sink_4_1234(cv_source());  // { dg-error "" }
     return 0;
 }
 
-one   sink_4_1235(               A&);  // { dg-message "one sink_4_1235|no known conversion" }
-two   sink_4_1235(const          A&);  // { dg-message "note" }
-three sink_4_1235(volatile       A&);  // { dg-message "note" }
-five  sink_4_1235(               A&&);  // { dg-message "note" }
+one   sink_4_1235(               A&);
+two   sink_4_1235(const          A&);
+three sink_4_1235(volatile       A&);
+five  sink_4_1235(               A&&);
 
 int test4_1235()
 {
@@ -59,19 +57,16 @@ int test4_1235()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_1235(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 62 }
-    sink_4_1235(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 64 }
-    sink_4_1235(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 66 }
+    sink_4_1235(cva);          // { dg-error "" }
+    sink_4_1235(v_source());   // { dg-error "" }
+    sink_4_1235(cv_source());  // { dg-error "" }
     return 0;
 }
 
-one   sink_4_1236(               A&);  // { dg-message "one sink_4_1236|no known conversion" }
-two   sink_4_1236(const          A&);  // { dg-message "note" }
-three sink_4_1236(volatile       A&);  // { dg-message "note" }
-six   sink_4_1236(const          A&&);  // { dg-message "note" }
+one   sink_4_1236(               A&);
+two   sink_4_1236(const          A&);
+three sink_4_1236(volatile       A&);
+six   sink_4_1236(const          A&&);
 
 int test4_1236()
 {
@@ -79,19 +74,16 @@ int test4_1236()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_1236(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 82 }
-    sink_4_1236(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 84 }
-    sink_4_1236(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 86 }
+    sink_4_1236(cva);          // { dg-error "" }
+    sink_4_1236(v_source());   // { dg-error "" }
+    sink_4_1236(cv_source());  // { dg-error "" }
     return 0;
 }
 
-one   sink_4_1237(               A&);  // { dg-message "one sink_4_1237|no known conversion" }
-two   sink_4_1237(const          A&);  // { dg-message "note" }
-three sink_4_1237(volatile       A&);  // { dg-message "note" }
-seven sink_4_1237(volatile       A&&);  // { dg-message "note" }
+one   sink_4_1237(               A&);
+two   sink_4_1237(const          A&);
+three sink_4_1237(volatile       A&);
+seven sink_4_1237(volatile       A&&);
 
 int test4_1237()
 {
@@ -99,10 +91,8 @@ int test4_1237()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_1237(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 102 }
-    sink_4_1237(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 104 }
+    sink_4_1237(cva);          // { dg-error "" }
+    sink_4_1237(cv_source());  // { dg-error "" }
     return 0;
 }
 
@@ -117,14 +107,14 @@ int test4_1238()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_1238(cva);		// { dg-error "lvalue" }
+    sink_4_1238(cva);		// { dg-error "" }
     return 0;
 }
 
-one   sink_4_1245(               A&);  // { dg-message "one sink_4_1245|no known conversion" }
-two   sink_4_1245(const          A&);  // { dg-message "note" }
-four  sink_4_1245(const volatile A&);  // { dg-message "note" }
-five  sink_4_1245(               A&&);  // { dg-message "note" }
+one   sink_4_1245(               A&);
+two   sink_4_1245(const          A&);
+four  sink_4_1245(const volatile A&);
+five  sink_4_1245(               A&&);
 
 int test4_1245()
 {
@@ -132,17 +122,15 @@ int test4_1245()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_1245(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 135 }
-    sink_4_1245(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 137 }
+    sink_4_1245(v_source());   // { dg-error "" }
+    sink_4_1245(cv_source());  // { dg-error "" }
     return 0;
 }
 
-one   sink_4_1246(               A&);  // { dg-message "one sink_4_1246|no known conversion" }
-two   sink_4_1246(const          A&);  // { dg-message "note" }
-four  sink_4_1246(const volatile A&);  // { dg-message "note" }
-six   sink_4_1246(const          A&&);  // { dg-message "note" }
+one   sink_4_1246(               A&);
+two   sink_4_1246(const          A&);
+four  sink_4_1246(const volatile A&);
+six   sink_4_1246(const          A&&);
 
 int test4_1246()
 {
@@ -150,17 +138,15 @@ int test4_1246()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_1246(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 153 }
-    sink_4_1246(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 155 }
+    sink_4_1246(v_source());   // { dg-error "" }
+    sink_4_1246(cv_source());  // { dg-error "" }
     return 0;
 }
 
-one   sink_4_1247(               A&);  // { dg-message "one sink_4_1247|no known conversion" }
-two   sink_4_1247(const          A&);  // { dg-message "note" }
-four  sink_4_1247(const volatile A&);  // { dg-message "note" }
-seven sink_4_1247(volatile       A&&);  // { dg-message "note" }
+one   sink_4_1247(               A&);
+two   sink_4_1247(const          A&);
+four  sink_4_1247(const volatile A&);
+seven sink_4_1247(volatile       A&&);
 
 int test4_1247()
 {
@@ -168,15 +154,14 @@ int test4_1247()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_1247(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 171 }
+    sink_4_1247(cv_source());  // { dg-error "" }
     return 0;
 }
 
-one   sink_4_1256(               A&);  // { dg-message "one sink_4_1256|no known conversion" }
-two   sink_4_1256(const          A&);  // { dg-message "note" }
-five  sink_4_1256(               A&&);  // { dg-message "note" }
-six   sink_4_1256(const          A&&);  // { dg-message "note" }
+one   sink_4_1256(               A&);
+two   sink_4_1256(const          A&);
+five  sink_4_1256(               A&&);
+six   sink_4_1256(const          A&&);
 
 int test4_1256()
 {
@@ -184,21 +169,17 @@ int test4_1256()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_1256(va);           // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 187 }
-    sink_4_1256(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 189 }
-    sink_4_1256(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 191 }
-    sink_4_1256(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 193 }
+    sink_4_1256(va);           // { dg-error "" }
+    sink_4_1256(cva);          // { dg-error "" }
+    sink_4_1256(v_source());   // { dg-error "" }
+    sink_4_1256(cv_source());  // { dg-error "" }
     return 0;
 }
 
-one   sink_4_1257(               A&);  // { dg-message "one sink_4_1257|no known conversion" }
-two   sink_4_1257(const          A&);  // { dg-message "note" }
-five  sink_4_1257(               A&&);  // { dg-message "note" }
-seven sink_4_1257(volatile       A&&);  // { dg-message "" }
+one   sink_4_1257(               A&);
+two   sink_4_1257(const          A&);
+five  sink_4_1257(               A&&);
+seven sink_4_1257(volatile       A&&);
 
 int test4_1257()
 {
@@ -206,11 +187,9 @@ int test4_1257()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_1257(va);		// { dg-error "lvalue" }
-    sink_4_1257(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 210 }
-    sink_4_1257(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 212 }
+    sink_4_1257(va);		// { dg-error "" }
+    sink_4_1257(cva);          // { dg-error "" }
+    sink_4_1257(cv_source());  // { dg-error "" }
     return 0;
 }
 
@@ -225,15 +204,15 @@ int test4_1258()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_1258(va);		// { dg-error "lvalue" }
-    sink_4_1258(cva);		// { dg-error "lvalue" }
+    sink_4_1258(va);		// { dg-error "" }
+    sink_4_1258(cva);		// { dg-error "" }
     return 0;
 }
 
-one   sink_4_1267(               A&);  // { dg-message "one sink_4_1267|no known conversion" }
-two   sink_4_1267(const          A&);  // { dg-message "note" }
-six   sink_4_1267(const          A&&);  // { dg-message "note" }
-seven sink_4_1267(volatile       A&&);  // { dg-message "" }
+one   sink_4_1267(               A&);
+two   sink_4_1267(const          A&);
+six   sink_4_1267(const          A&&);
+seven sink_4_1267(volatile       A&&);
 
 int test4_1267()
 {
@@ -241,13 +220,10 @@ int test4_1267()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_1267(va);		// { dg-error "lvalue" }
-    sink_4_1267(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 245 }
-    sink_4_1267(source());     // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 247 }
-    sink_4_1267(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 249 }
+    sink_4_1267(va);		// { dg-error "" }
+    sink_4_1267(cva);          // { dg-error "" }
+    sink_4_1267(source());     // { dg-error "" }
+    sink_4_1267(cv_source());  // { dg-error "" }
     return 0;
 }
 
@@ -262,8 +238,8 @@ int test4_1268()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_1268(va);		// { dg-error "lvalue" }
-    sink_4_1268(cva);		// { dg-error "lvalue" }
+    sink_4_1268(va);		// { dg-error "" }
+    sink_4_1268(cva);		// { dg-error "" }
     return 0;
 }
 
@@ -278,15 +254,15 @@ int test4_1278()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_1278(va);		// { dg-error "lvalue" }
-    sink_4_1278(cva);		// { dg-error "lvalue" }
+    sink_4_1278(va);		// { dg-error "" }
+    sink_4_1278(cva);		// { dg-error "" }
     return 0;
 }
 
-one   sink_4_1345(               A&);  // { dg-message "one sink_4_1345|no known conversion" }
-three sink_4_1345(volatile       A&);  // { dg-message "note" }
-four  sink_4_1345(const volatile A&);  // { dg-message "note" }
-five  sink_4_1345(               A&&);  // { dg-message "note" }
+one   sink_4_1345(               A&);
+three sink_4_1345(volatile       A&);
+four  sink_4_1345(const volatile A&);
+five  sink_4_1345(               A&&);
 
 int test4_1345()
 {
@@ -294,19 +270,16 @@ int test4_1345()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_1345(c_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 297 }
-    sink_4_1345(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 299 }
-    sink_4_1345(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 301 }
+    sink_4_1345(c_source());   // { dg-error "" }
+    sink_4_1345(v_source());   // { dg-error "" }
+    sink_4_1345(cv_source());  // { dg-error "" }
     return 0;
 }
 
-one   sink_4_1346(               A&);  // { dg-message "one sink_4_1346|no known conversion" }
-three sink_4_1346(volatile       A&);  // { dg-message "note" }
-four  sink_4_1346(const volatile A&);  // { dg-message "note" }
-six   sink_4_1346(const          A&&);  // { dg-message "note" }
+one   sink_4_1346(               A&);
+three sink_4_1346(volatile       A&);
+four  sink_4_1346(const volatile A&);
+six   sink_4_1346(const          A&&);
 
 int test4_1346()
 {
@@ -314,17 +287,15 @@ int test4_1346()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_1346(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 317 }
-    sink_4_1346(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 319 }
+    sink_4_1346(v_source());   // { dg-error "" }
+    sink_4_1346(cv_source());  // { dg-error "" }
     return 0;
 }
 
-one   sink_4_1347(               A&);  // { dg-message "one sink_4_1347|no known conversion" }
-three sink_4_1347(volatile       A&);  // { dg-message "note" }
-four  sink_4_1347(const volatile A&);  // { dg-message "note" }
-seven sink_4_1347(volatile       A&&);  // { dg-message "note" }
+one   sink_4_1347(               A&);
+three sink_4_1347(volatile       A&);
+four  sink_4_1347(const volatile A&);
+seven sink_4_1347(volatile       A&&);
 
 int test4_1347()
 {
@@ -332,17 +303,15 @@ int test4_1347()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_1347(c_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 335 }
-    sink_4_1347(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 337 }
+    sink_4_1347(c_source());   // { dg-error "" }
+    sink_4_1347(cv_source());  // { dg-error "" }
     return 0;
 }
 
-one   sink_4_1356(               A&);  // { dg-message "one sink_4_1356|no known conversion" }
-three sink_4_1356(volatile       A&);  // { dg-message "note" }
-five  sink_4_1356(               A&&);  // { dg-message "note" }
-six   sink_4_1356(const          A&&);  // { dg-message "" }
+one   sink_4_1356(               A&);
+three sink_4_1356(volatile       A&);
+five  sink_4_1356(               A&&);
+six   sink_4_1356(const          A&&);
 
 int test4_1356()
 {
@@ -350,20 +319,17 @@ int test4_1356()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_1356(ca);		// { dg-error "lvalue" }
-    sink_4_1356(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 354 }
-    sink_4_1356(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 356 }
-    sink_4_1356(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 358 }
+    sink_4_1356(ca);		// { dg-error "" }
+    sink_4_1356(cva);          // { dg-error "" }
+    sink_4_1356(v_source());   // { dg-error "" }
+    sink_4_1356(cv_source());  // { dg-error "" }
     return 0;
 }
 
-one   sink_4_1357(               A&);  // { dg-message "one sink_4_1357|no known conversion" }
-three sink_4_1357(volatile       A&);  // { dg-message "note" }
-five  sink_4_1357(               A&&);  // { dg-message "note" }
-seven sink_4_1357(volatile       A&&);  // { dg-message "note" }
+one   sink_4_1357(               A&);
+three sink_4_1357(volatile       A&);
+five  sink_4_1357(               A&&);
+seven sink_4_1357(volatile       A&&);
 
 int test4_1357()
 {
@@ -371,14 +337,10 @@ int test4_1357()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_1357(ca);           // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 374 }
-    sink_4_1357(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 376 }
-    sink_4_1357(c_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 378 }
-    sink_4_1357(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 380 }
+    sink_4_1357(ca);           // { dg-error "" }
+    sink_4_1357(cva);          // { dg-error "" }
+    sink_4_1357(c_source());   // { dg-error "" }
+    sink_4_1357(cv_source());  // { dg-error "" }
     return 0;
 }
 
@@ -393,15 +355,15 @@ int test4_1358()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_1358(ca);		// { dg-error "lvalue" }
-    sink_4_1358(cva);		// { dg-error "lvalue" }
+    sink_4_1358(ca);		// { dg-error "" }
+    sink_4_1358(cva);		// { dg-error "" }
     return 0;
 }
 
-one   sink_4_1367(               A&);  // { dg-message "one sink_4_1367|no known conversion" }
-three sink_4_1367(volatile       A&);  // { dg-message "note" }
-six   sink_4_1367(const          A&&);  // { dg-message "" }
-seven sink_4_1367(volatile       A&&);  // { dg-message "note" }
+one   sink_4_1367(               A&);
+three sink_4_1367(volatile       A&);
+six   sink_4_1367(const          A&&);
+seven sink_4_1367(volatile       A&&);
 
 int test4_1367()
 {
@@ -409,13 +371,10 @@ int test4_1367()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_1367(ca);		// { dg-error "lvalue" }
-    sink_4_1367(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 413 }
-    sink_4_1367(source());     // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 415 }
-    sink_4_1367(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 417 }
+    sink_4_1367(ca);		// { dg-error "" }
+    sink_4_1367(cva);          // { dg-error "" }
+    sink_4_1367(source());     // { dg-error "" }
+    sink_4_1367(cv_source());  // { dg-error "" }
     return 0;
 }
 
@@ -430,8 +389,8 @@ int test4_1368()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_1368(ca);		// { dg-error "lvalue" }
-    sink_4_1368(cva);		// { dg-error "lvalue" }
+    sink_4_1368(ca);		// { dg-error "" }
+    sink_4_1368(cva);		// { dg-error "" }
     return 0;
 }
 
@@ -446,15 +405,15 @@ int test4_1378()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_1378(ca);		// { dg-error "lvalue" }
-    sink_4_1378(cva);		// { dg-error "lvalue" }
+    sink_4_1378(ca);		// { dg-error "" }
+    sink_4_1378(cva);		// { dg-error "" }
     return 0;
 }
 
-one   sink_4_1456(               A&);  // { dg-message "one sink_4_1456|no known conversion" }
-four  sink_4_1456(const volatile A&);  // { dg-message "note" }
-five  sink_4_1456(               A&&);  // { dg-message "note" }
-six   sink_4_1456(const          A&&);  // { dg-message "note" }
+one   sink_4_1456(               A&);
+four  sink_4_1456(const volatile A&);
+five  sink_4_1456(               A&&);
+six   sink_4_1456(const          A&&);
 
 int test4_1456()
 {
@@ -462,17 +421,15 @@ int test4_1456()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_1456(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 465 }
-    sink_4_1456(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 467 }
+    sink_4_1456(v_source());   // { dg-error "" }
+    sink_4_1456(cv_source());  // { dg-error "" }
     return 0;
 }
 
-one   sink_4_1457(               A&);  // { dg-message "one sink_4_1457|no known conversion" }
-four  sink_4_1457(const volatile A&);  // { dg-message "note" }
-five  sink_4_1457(               A&&);  // { dg-message "note" }
-seven sink_4_1457(volatile       A&&);  // { dg-message "note" }
+one   sink_4_1457(               A&);
+four  sink_4_1457(const volatile A&);
+five  sink_4_1457(               A&&);
+seven sink_4_1457(volatile       A&&);
 
 int test4_1457()
 {
@@ -480,17 +437,15 @@ int test4_1457()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_1457(c_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 483 }
-    sink_4_1457(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 485 }
+    sink_4_1457(c_source());   // { dg-error "" }
+    sink_4_1457(cv_source());  // { dg-error "" }
     return 0;
 }
 
-one   sink_4_1467(               A&);  // { dg-message "one sink_4_1467|no known conversion" }
-four  sink_4_1467(const volatile A&);  // { dg-message "note" }
-six   sink_4_1467(const          A&&);  // { dg-message "note" }
-seven sink_4_1467(volatile       A&&);  // { dg-message "note" }
+one   sink_4_1467(               A&);
+four  sink_4_1467(const volatile A&);
+six   sink_4_1467(const          A&&);
+seven sink_4_1467(volatile       A&&);
 
 int test4_1467()
 {
@@ -498,17 +453,15 @@ int test4_1467()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_1467(source());     // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 501 }
-    sink_4_1467(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 503 }
+    sink_4_1467(source());     // { dg-error "" }
+    sink_4_1467(cv_source());  // { dg-error "" }
     return 0;
 }
 
-one   sink_4_1567(               A&);  // { dg-message "one sink_4_1567|no known conversion" }
-five  sink_4_1567(               A&&);  // { dg-message "note" }
-six   sink_4_1567(const          A&&);  // { dg-message "" }
-seven sink_4_1567(volatile       A&&);  // { dg-message "" }
+one   sink_4_1567(               A&);
+five  sink_4_1567(               A&&);
+six   sink_4_1567(const          A&&);
+seven sink_4_1567(volatile       A&&);
 
 int test4_1567()
 {
@@ -516,12 +469,10 @@ int test4_1567()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_1567(ca);	       // { dg-error "lvalue" }
-    sink_4_1567(va);	       // { dg-error "lvalue" }
-    sink_4_1567(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 521 }
-    sink_4_1567(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 523 }
+    sink_4_1567(ca);	       // { dg-error "" }
+    sink_4_1567(va);	       // { dg-error "" }
+    sink_4_1567(cva);          // { dg-error "" }
+    sink_4_1567(cv_source());  // { dg-error "" }
     return 0;
 }
 
@@ -536,9 +487,9 @@ int test4_1568()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_1568(ca);		// { dg-error "lvalue" }
-    sink_4_1568(va);		// { dg-error "lvalue" }
-    sink_4_1568(cva);		// { dg-error "lvalue" }
+    sink_4_1568(ca);		// { dg-error "" }
+    sink_4_1568(va);		// { dg-error "" }
+    sink_4_1568(cva);		// { dg-error "" }
     return 0;
 }
 
@@ -553,16 +504,16 @@ int test4_1578()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_1578(ca);		// { dg-error "lvalue" }
-    sink_4_1578(va);		// { dg-error "lvalue" }
-    sink_4_1578(cva);		// { dg-error "lvalue" }
+    sink_4_1578(ca);		// { dg-error "" }
+    sink_4_1578(va);		// { dg-error "" }
+    sink_4_1578(cva);		// { dg-error "" }
     return 0;
 }
 
 one   sink_4_1678(               A&);
-six   sink_4_1678(const          A&&);  // { dg-message "" }
-seven sink_4_1678(volatile       A&&);  // { dg-message "" }
-eight sink_4_1678(const volatile A&&);  // { dg-message "" }
+six   sink_4_1678(const          A&&);
+seven sink_4_1678(volatile       A&&);
+eight sink_4_1678(const volatile A&&);
 
 int test4_1678()
 {
@@ -570,18 +521,17 @@ int test4_1678()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_1678(ca);		// { dg-error "lvalue" }
-    sink_4_1678(va);		// { dg-error "lvalue" }
-    sink_4_1678(cva);		// { dg-error "lvalue" }
-    sink_4_1678(source());  // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 576 }
+    sink_4_1678(ca);		// { dg-error "" }
+    sink_4_1678(va);		// { dg-error "" }
+    sink_4_1678(cva);		// { dg-error "" }
+    sink_4_1678(source());  // { dg-error "" }
     return 0;
 }
 
-two   sink_4_2345(const          A&);  // { dg-message "two sink_4_2345|no known conversion" }
-three sink_4_2345(volatile       A&);  // { dg-message "note" }
-four  sink_4_2345(const volatile A&);  // { dg-message "note" }
-five  sink_4_2345(               A&&);  // { dg-message "note" }
+two   sink_4_2345(const          A&);
+three sink_4_2345(volatile       A&);
+four  sink_4_2345(const volatile A&);
+five  sink_4_2345(               A&&);
 
 int test4_2345()
 {
@@ -589,19 +539,16 @@ int test4_2345()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_2345(a);            // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 592 }
-    sink_4_2345(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 594 }
-    sink_4_2345(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 596 }
+    sink_4_2345(a);            // { dg-error "" }
+    sink_4_2345(v_source());   // { dg-error "" }
+    sink_4_2345(cv_source());  // { dg-error "" }
     return 0;
 }
 
-two   sink_4_2346(const          A&);  // { dg-message "two sink_4_2346|no known conversion" }
-three sink_4_2346(volatile       A&);  // { dg-message "note" }
-four  sink_4_2346(const volatile A&);  // { dg-message "note" }
-six   sink_4_2346(const          A&&);  // { dg-message "note" }
+two   sink_4_2346(const          A&);
+three sink_4_2346(volatile       A&);
+four  sink_4_2346(const volatile A&);
+six   sink_4_2346(const          A&&);
 
 int test4_2346()
 {
@@ -609,19 +556,16 @@ int test4_2346()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_2346(a);            // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 612 }
-    sink_4_2346(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 614 }
-    sink_4_2346(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 616 }
+    sink_4_2346(a);            // { dg-error "" }
+    sink_4_2346(v_source());   // { dg-error "" }
+    sink_4_2346(cv_source());  // { dg-error "" }
     return 0;
 }
 
-two   sink_4_2347(const          A&);  // { dg-message "two sink_4_2347|no known conversion" }
-three sink_4_2347(volatile       A&);  // { dg-message "note" }
-four  sink_4_2347(const volatile A&);  // { dg-message "note" }
-seven sink_4_2347(volatile       A&&);  // { dg-message "note" }
+two   sink_4_2347(const          A&);
+three sink_4_2347(volatile       A&);
+four  sink_4_2347(const volatile A&);
+seven sink_4_2347(volatile       A&&);
 
 int test4_2347()
 {
@@ -629,17 +573,15 @@ int test4_2347()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_2347(a);            // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 632 }
-    sink_4_2347(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 634 }
+    sink_4_2347(a);            // { dg-error "" }
+    sink_4_2347(cv_source());  // { dg-error "" }
     return 0;
 }
 
-two   sink_4_2348(const          A&);  // { dg-message "note" }
-three sink_4_2348(volatile       A&);  // { dg-message "note" }
-four  sink_4_2348(const volatile A&);  // { dg-message "note" }
-eight sink_4_2348(const volatile A&&);  // { dg-message "note" }
+two   sink_4_2348(const          A&);
+three sink_4_2348(volatile       A&);
+four  sink_4_2348(const volatile A&);
+eight sink_4_2348(const volatile A&&);
 
 int test4_2348()
 {
@@ -647,15 +589,14 @@ int test4_2348()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_2348(a);  // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 650 }
+    sink_4_2348(a);  // { dg-error "" }
     return 0;
 }
 
-two   sink_4_2356(const          A&);  // { dg-message "two sink_4_2356|no known conversion" }
-three sink_4_2356(volatile       A&);  // { dg-message "note" }
-five  sink_4_2356(               A&&);  // { dg-message "note" }
-six   sink_4_2356(const          A&&);  // { dg-message "note" }
+two   sink_4_2356(const          A&);
+three sink_4_2356(volatile       A&);
+five  sink_4_2356(               A&&);
+six   sink_4_2356(const          A&&);
 
 int test4_2356()
 {
@@ -663,21 +604,17 @@ int test4_2356()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_2356(a);            // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 666 }
-    sink_4_2356(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 668 }
-    sink_4_2356(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 670 }
-    sink_4_2356(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 672 }
+    sink_4_2356(a);            // { dg-error "" }
+    sink_4_2356(cva);          // { dg-error "" }
+    sink_4_2356(v_source());   // { dg-error "" }
+    sink_4_2356(cv_source());  // { dg-error "" }
     return 0;
 }
 
-two   sink_4_2357(const          A&);  // { dg-message "two sink_4_2357|no known conversion" }
-three sink_4_2357(volatile       A&);  // { dg-message "note" }
-five  sink_4_2357(               A&&);  // { dg-message "note" }
-seven sink_4_2357(volatile       A&&);  // { dg-message "note" }
+two   sink_4_2357(const          A&);
+three sink_4_2357(volatile       A&);
+five  sink_4_2357(               A&&);
+seven sink_4_2357(volatile       A&&);
 
 int test4_2357()
 {
@@ -685,19 +622,16 @@ int test4_2357()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_2357(a);            // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 688 }
-    sink_4_2357(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 690 }
-    sink_4_2357(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 692 }
+    sink_4_2357(a);            // { dg-error "" }
+    sink_4_2357(cva);          // { dg-error "" }
+    sink_4_2357(cv_source());  // { dg-error "" }
     return 0;
 }
 
-two   sink_4_2358(const          A&);  // { dg-message "note" }
-three sink_4_2358(volatile       A&);  // { dg-message "note" }
-five  sink_4_2358(               A&&);  // { dg-message "note" }
-eight sink_4_2358(const volatile A&&);  // { dg-message "" }
+two   sink_4_2358(const          A&);
+three sink_4_2358(volatile       A&);
+five  sink_4_2358(               A&&);
+eight sink_4_2358(const volatile A&&);
 
 int test4_2358()
 {
@@ -705,16 +639,15 @@ int test4_2358()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_2358(a);  // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 708 }
-    sink_4_2358(cva); // { dg-error "lvalue" }
+    sink_4_2358(a);  // { dg-error "" }
+    sink_4_2358(cva); // { dg-error "" }
     return 0;
 }
 
-two   sink_4_2367(const          A&);  // { dg-message "two sink_4_2367|no known conversion" }
-three sink_4_2367(volatile       A&);  // { dg-message "note" }
-six   sink_4_2367(const          A&&);  // { dg-message "note" }
-seven sink_4_2367(volatile       A&&);  // { dg-message "note" }
+two   sink_4_2367(const          A&);
+three sink_4_2367(volatile       A&);
+six   sink_4_2367(const          A&&);
+seven sink_4_2367(volatile       A&&);
 
 int test4_2367()
 {
@@ -722,21 +655,17 @@ int test4_2367()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_2367(a);            // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 725 }
-    sink_4_2367(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 727 }
-    sink_4_2367(source());     // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 729 }
-    sink_4_2367(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 731 }
+    sink_4_2367(a);            // { dg-error "" }
+    sink_4_2367(cva);          // { dg-error "" }
+    sink_4_2367(source());     // { dg-error "" }
+    sink_4_2367(cv_source());  // { dg-error "" }
     return 0;
 }
 
-two   sink_4_2368(const          A&);  // { dg-message "note" }
-three sink_4_2368(volatile       A&);  // { dg-message "note" }
-six   sink_4_2368(const          A&&);  // { dg-message "note" }
-eight sink_4_2368(const volatile A&&);  // { dg-message "" }
+two   sink_4_2368(const          A&);
+three sink_4_2368(volatile       A&);
+six   sink_4_2368(const          A&&);
+eight sink_4_2368(const volatile A&&);
 
 int test4_2368()
 {
@@ -744,16 +673,15 @@ int test4_2368()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_2368(a);  // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 747 }
-    sink_4_2368(cva); // { dg-error "lvalue" }
+    sink_4_2368(a);  // { dg-error "" }
+    sink_4_2368(cva); // { dg-error "" }
     return 0;
 }
 
-two   sink_4_2378(const          A&);  // { dg-message "note" }
-three sink_4_2378(volatile       A&);  // { dg-message "note" }
-seven sink_4_2378(volatile       A&&);  // { dg-message "note" }
-eight sink_4_2378(const volatile A&&);  // { dg-message "" }
+two   sink_4_2378(const          A&);
+three sink_4_2378(volatile       A&);
+seven sink_4_2378(volatile       A&&);
+eight sink_4_2378(const volatile A&&);
 
 int test4_2378()
 {
@@ -761,16 +689,15 @@ int test4_2378()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_2378(a);  // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 764 }
-    sink_4_2378(cva); // { dg-error "lvalue" }
+    sink_4_2378(a);  // { dg-error "" }
+    sink_4_2378(cva); // { dg-error "" }
     return 0;
 }
 
-two   sink_4_2456(const          A&);  // { dg-message "two sink_4_2456|no known conversion" }
-four  sink_4_2456(const volatile A&);  // { dg-message "note" }
-five  sink_4_2456(               A&&);  // { dg-message "note" }
-six   sink_4_2456(const          A&&);  // { dg-message "note" }
+two   sink_4_2456(const          A&);
+four  sink_4_2456(const volatile A&);
+five  sink_4_2456(               A&&);
+six   sink_4_2456(const          A&&);
 
 int test4_2456()
 {
@@ -778,17 +705,15 @@ int test4_2456()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_2456(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 781 }
-    sink_4_2456(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 783 }
+    sink_4_2456(v_source());   // { dg-error "" }
+    sink_4_2456(cv_source());  // { dg-error "" }
     return 0;
 }
 
-two   sink_4_2457(const          A&);  // { dg-message "two sink_4_2457|no known conversion" }
-four  sink_4_2457(const volatile A&);  // { dg-message "note" }
-five  sink_4_2457(               A&&);  // { dg-message "note" }
-seven sink_4_2457(volatile       A&&);  // { dg-message "note" }
+two   sink_4_2457(const          A&);
+four  sink_4_2457(const volatile A&);
+five  sink_4_2457(               A&&);
+seven sink_4_2457(volatile       A&&);
 
 int test4_2457()
 {
@@ -796,15 +721,14 @@ int test4_2457()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_2457(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 799 }
+    sink_4_2457(cv_source());  // { dg-error "" }
     return 0;
 }
 
-two   sink_4_2467(const          A&);  // { dg-message "two sink_4_2467|no known conversion" }
-four  sink_4_2467(const volatile A&);  // { dg-message "note" }
-six   sink_4_2467(const          A&&);  // { dg-message "note" }
-seven sink_4_2467(volatile       A&&);  // { dg-message "note" }
+two   sink_4_2467(const          A&);
+four  sink_4_2467(const volatile A&);
+six   sink_4_2467(const          A&&);
+seven sink_4_2467(volatile       A&&);
 
 int test4_2467()
 {
@@ -812,17 +736,15 @@ int test4_2467()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_2467(source());     // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 815 }
-    sink_4_2467(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 817 }
+    sink_4_2467(source());     // { dg-error "" }
+    sink_4_2467(cv_source());  // { dg-error "" }
     return 0;
 }
 
-two   sink_4_2567(const          A&);  // { dg-message "two sink_4_2567|no known conversion" }
-five  sink_4_2567(               A&&);  // { dg-message "note" }
-six   sink_4_2567(const          A&&);  // { dg-message "note" }
-seven sink_4_2567(volatile       A&&);  // { dg-message "" }
+two   sink_4_2567(const          A&);
+five  sink_4_2567(               A&&);
+six   sink_4_2567(const          A&&);
+seven sink_4_2567(volatile       A&&);
 
 int test4_2567()
 {
@@ -830,11 +752,9 @@ int test4_2567()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_2567(va);		// { dg-error "lvalue" }
-    sink_4_2567(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 834 }
-    sink_4_2567(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 836 }
+    sink_4_2567(va);		// { dg-error "" }
+    sink_4_2567(cva);          // { dg-error "" }
+    sink_4_2567(cv_source());  // { dg-error "" }
     return 0;
 }
 
@@ -849,8 +769,8 @@ int test4_2568()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_2568(va); // { dg-error "lvalue" }
-    sink_4_2568(cva); // { dg-error "lvalue" }
+    sink_4_2568(va); // { dg-error "" }
+    sink_4_2568(cva); // { dg-error "" }
     return 0;
 }
 
@@ -865,15 +785,15 @@ int test4_2578()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_2578(va); // { dg-error "lvalue" }
-    sink_4_2578(cva); // { dg-error "lvalue" }
+    sink_4_2578(va); // { dg-error "" }
+    sink_4_2578(cva); // { dg-error "" }
     return 0;
 }
 
-two   sink_4_2678(const          A&);  // { dg-message "note" }
-six   sink_4_2678(const          A&&);  // { dg-message "note" }
-seven sink_4_2678(volatile       A&&);  // { dg-message "" }
-eight sink_4_2678(const volatile A&&);  // { dg-message "" }
+two   sink_4_2678(const          A&);
+six   sink_4_2678(const          A&&);
+seven sink_4_2678(volatile       A&&);
+eight sink_4_2678(const volatile A&&);
 
 int test4_2678()
 {
@@ -881,17 +801,16 @@ int test4_2678()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_2678(va); // { dg-error "lvalue" }
-    sink_4_2678(cva); // { dg-error "lvalue" }
-    sink_4_2678(source());  // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 886 }
+    sink_4_2678(va); // { dg-error "" }
+    sink_4_2678(cva); // { dg-error "" }
+    sink_4_2678(source());  // { dg-error "" }
     return 0;
 }
 
-three sink_4_3456(volatile       A&);  // { dg-message "three sink_4_3456|no known conversion" }
-four  sink_4_3456(const volatile A&);  // { dg-message "note" }
-five  sink_4_3456(               A&&);  // { dg-message "note" }
-six   sink_4_3456(const          A&&);  // { dg-message "note" }
+three sink_4_3456(volatile       A&);
+four  sink_4_3456(const volatile A&);
+five  sink_4_3456(               A&&);
+six   sink_4_3456(const          A&&);
 
 int test4_3456()
 {
@@ -899,17 +818,15 @@ int test4_3456()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_3456(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 902 }
-    sink_4_3456(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 904 }
+    sink_4_3456(v_source());   // { dg-error "" }
+    sink_4_3456(cv_source());  // { dg-error "" }
     return 0;
 }
 
-three sink_4_3457(volatile       A&);  // { dg-message "three sink_4_3457|no known conversion" }
-four  sink_4_3457(const volatile A&);  // { dg-message "note" }
-five  sink_4_3457(               A&&);  // { dg-message "note" }
-seven sink_4_3457(volatile       A&&);  // { dg-message "note" }
+three sink_4_3457(volatile       A&);
+four  sink_4_3457(const volatile A&);
+five  sink_4_3457(               A&&);
+seven sink_4_3457(volatile       A&&);
 
 int test4_3457()
 {
@@ -917,17 +834,15 @@ int test4_3457()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_3457(c_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 920 }
-    sink_4_3457(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 922 }
+    sink_4_3457(c_source());   // { dg-error "" }
+    sink_4_3457(cv_source());  // { dg-error "" }
     return 0;
 }
 
-three sink_4_3467(volatile       A&);  // { dg-message "three sink_4_3467|no known conversion" }
-four  sink_4_3467(const volatile A&);  // { dg-message "note" }
-six   sink_4_3467(const          A&&);  // { dg-message "note" }
-seven sink_4_3467(volatile       A&&);  // { dg-message "note" }
+three sink_4_3467(volatile       A&);
+four  sink_4_3467(const volatile A&);
+six   sink_4_3467(const          A&&);
+seven sink_4_3467(volatile       A&&);
 
 int test4_3467()
 {
@@ -935,17 +850,15 @@ int test4_3467()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_3467(source());     // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 938 }
-    sink_4_3467(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 940 }
+    sink_4_3467(source());     // { dg-error "" }
+    sink_4_3467(cv_source());  // { dg-error "" }
     return 0;
 }
 
-three sink_4_3567(volatile       A&);  // { dg-message "three sink_4_3567|no known conversion" }
-five  sink_4_3567(               A&&);  // { dg-message "note" }
-six   sink_4_3567(const          A&&);  // { dg-message "" }
-seven sink_4_3567(volatile       A&&);  // { dg-message "note" }
+three sink_4_3567(volatile       A&);
+five  sink_4_3567(               A&&);
+six   sink_4_3567(const          A&&);
+seven sink_4_3567(volatile       A&&);
 
 int test4_3567()
 {
@@ -953,11 +866,9 @@ int test4_3567()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_3567(ca);		// { dg-error "lvalue" }
-    sink_4_3567(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 957 }
-    sink_4_3567(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 959 }
+    sink_4_3567(ca);		// { dg-error "" }
+    sink_4_3567(cva);          // { dg-error "" }
+    sink_4_3567(cv_source());  // { dg-error "" }
     return 0;
 }
 
@@ -972,8 +883,8 @@ int test4_3568()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_3568(ca); // { dg-error "lvalue" }
-    sink_4_3568(cva); // { dg-error "lvalue" }
+    sink_4_3568(ca); // { dg-error "" }
+    sink_4_3568(cva); // { dg-error "" }
     return 0;
 }
 
@@ -988,15 +899,15 @@ int test4_3578()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_3578(ca); // { dg-error "lvalue" }
-    sink_4_3578(cva); // { dg-error "lvalue" }
+    sink_4_3578(ca); // { dg-error "" }
+    sink_4_3578(cva); // { dg-error "" }
     return 0;
 }
 
 three sink_4_3678(volatile       A&);
-six   sink_4_3678(const          A&&);  // { dg-message "" }
-seven sink_4_3678(volatile       A&&);  // { dg-message "note" }
-eight sink_4_3678(const volatile A&&);  // { dg-message "" }
+six   sink_4_3678(const          A&&);
+seven sink_4_3678(volatile       A&&);
+eight sink_4_3678(const volatile A&&);
 
 int test4_3678()
 {
@@ -1004,17 +915,16 @@ int test4_3678()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_3678(ca);		// { dg-error "lvalue" }
-    sink_4_3678(cva);		// { dg-error "lvalue" }
-    sink_4_3678(source());  // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 1009 }
+    sink_4_3678(ca);		// { dg-error "" }
+    sink_4_3678(cva);		// { dg-error "" }
+    sink_4_3678(source());  // { dg-error "" }
     return 0;
 }
 
-four  sink_4_4567(const volatile A&);  // { dg-message "note" }
-five  sink_4_4567(               A&&);  // { dg-message "note" }
-six   sink_4_4567(const          A&&);  // { dg-message "note" }
-seven sink_4_4567(volatile       A&&);  // { dg-message "note" }
+four  sink_4_4567(const volatile A&);
+five  sink_4_4567(               A&&);
+six   sink_4_4567(const          A&&);
+seven sink_4_4567(volatile       A&&);
 
 int test4_4567()
 {
@@ -1022,15 +932,14 @@ int test4_4567()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_4567(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 1025 }
+    sink_4_4567(cv_source());  // { dg-error "" }
     return 0;
 }
 
 four  sink_4_4678(const volatile A&);
-six   sink_4_4678(const          A&&);  // { dg-message "note" }
-seven sink_4_4678(volatile       A&&);  // { dg-message "note" }
-eight sink_4_4678(const volatile A&&);  // { dg-message "note" }
+six   sink_4_4678(const          A&&);
+seven sink_4_4678(volatile       A&&);
+eight sink_4_4678(const volatile A&&);
 
 int test4_4678()
 {
@@ -1038,8 +947,7 @@ int test4_4678()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_4678(source());  // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 1041 }
+    sink_4_4678(source());  // { dg-error "" }
     return 0;
 }
 
@@ -1054,10 +962,10 @@ int test4_5678()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_4_5678(a);		// { dg-error "lvalue" }
-    sink_4_5678(ca);		// { dg-error "lvalue" }
-    sink_4_5678(va);		// { dg-error "lvalue" }
-    sink_4_5678(cva);		// { dg-error "lvalue" }
+    sink_4_5678(a);		// { dg-error "" }
+    sink_4_5678(ca);		// { dg-error "" }
+    sink_4_5678(va);		// { dg-error "" }
+    sink_4_5678(cva);		// { dg-error "" }
     return 0;
 }
 
diff --git a/gcc/testsuite/g++.dg/cpp0x/rv5n.C b/gcc/testsuite/g++.dg/cpp0x/rv5n.C
index ca179cd..90d5418 100644
--- a/gcc/testsuite/g++.dg/cpp0x/rv5n.C
+++ b/gcc/testsuite/g++.dg/cpp0x/rv5n.C
@@ -31,10 +31,10 @@ const volatile A cv_source();
 // 5 at a time
 
 one   sink_5_12345(               A&);  // { dg-message "one sink_5_12345|no known conversion" }
-two   sink_5_12345(const          A&);  // { dg-message "note" }
-three sink_5_12345(volatile       A&);  // { dg-message "note" }
-four  sink_5_12345(const volatile A&);  // { dg-message "note" }
-five  sink_5_12345(               A&&);  // { dg-message "note" }
+two   sink_5_12345(const          A&);
+three sink_5_12345(volatile       A&);
+four  sink_5_12345(const volatile A&);
+five  sink_5_12345(               A&&);
 
 int test5_12345()
 {
@@ -42,18 +42,16 @@ int test5_12345()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_5_12345(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 45 }
-    sink_5_12345(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 47 }
+    sink_5_12345(v_source());   // { dg-error "" }
+    sink_5_12345(cv_source());  // { dg-error "" }
     return 0;
 }
 
 one   sink_5_12346(               A&);  // { dg-message "one sink_5_12346|no known conversion" }
-two   sink_5_12346(const          A&);  // { dg-message "note" }
-three sink_5_12346(volatile       A&);  // { dg-message "note" }
-four  sink_5_12346(const volatile A&);  // { dg-message "note" }
-six   sink_5_12346(const          A&&);  // { dg-message "note" }
+two   sink_5_12346(const          A&);
+three sink_5_12346(volatile       A&);
+four  sink_5_12346(const volatile A&);
+six   sink_5_12346(const          A&&);
 
 int test5_12346()
 {
@@ -61,18 +59,16 @@ int test5_12346()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_5_12346(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 64 }
-    sink_5_12346(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 66 }
+    sink_5_12346(v_source());   // { dg-error "" }
+    sink_5_12346(cv_source());  // { dg-error "" }
     return 0;
 }
 
 one   sink_5_12347(               A&);  // { dg-message "one sink_5_12347|no known conversion" }
-two   sink_5_12347(const          A&);  // { dg-message "note" }
-three sink_5_12347(volatile       A&);  // { dg-message "note" }
-four  sink_5_12347(const volatile A&);  // { dg-message "note" }
-seven sink_5_12347(volatile       A&&);  // { dg-message "note" }
+two   sink_5_12347(const          A&);
+three sink_5_12347(volatile       A&);
+four  sink_5_12347(const volatile A&);
+seven sink_5_12347(volatile       A&&);
 
 int test5_12347()
 {
@@ -80,16 +76,15 @@ int test5_12347()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_5_12347(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 83 }
+    sink_5_12347(cv_source());  // { dg-error "" }
     return 0;
 }
 
 one   sink_5_12356(               A&);  // { dg-message "one sink_5_12356|no known conversion" }
-two   sink_5_12356(const          A&);  // { dg-message "note" }
-three sink_5_12356(volatile       A&);  // { dg-message "note" }
-five  sink_5_12356(               A&&);  // { dg-message "note" }
-six   sink_5_12356(const          A&&);  // { dg-message "note" }
+two   sink_5_12356(const          A&);
+three sink_5_12356(volatile       A&);
+five  sink_5_12356(               A&&);
+six   sink_5_12356(const          A&&);
 
 int test5_12356()
 {
@@ -97,20 +92,17 @@ int test5_12356()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_5_12356(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 100 }
-    sink_5_12356(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 102 }
-    sink_5_12356(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 104 }
+    sink_5_12356(cva);          // { dg-error "" }
+    sink_5_12356(v_source());   // { dg-error "" }
+    sink_5_12356(cv_source());  // { dg-error "" }
     return 0;
 }
 
 one   sink_5_12357(               A&);  // { dg-message "one sink_5_12357|no known conversion" }
-two   sink_5_12357(const          A&);  // { dg-message "note" }
-three sink_5_12357(volatile       A&);  // { dg-message "note" }
-five  sink_5_12357(               A&&);  // { dg-message "note" }
-seven sink_5_12357(volatile       A&&);  // { dg-message "note" }
+two   sink_5_12357(const          A&);
+three sink_5_12357(volatile       A&);
+five  sink_5_12357(               A&&);
+seven sink_5_12357(volatile       A&&);
 
 int test5_12357()
 {
@@ -118,10 +110,8 @@ int test5_12357()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_5_12357(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 121 }
-    sink_5_12357(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 123 }
+    sink_5_12357(cva);          // { dg-error "" }
+    sink_5_12357(cv_source());  // { dg-error "" }
     return 0;
 }
 
@@ -137,15 +127,15 @@ int test5_12358()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_5_12358(cva);		// { dg-error "lvalue" }
+    sink_5_12358(cva);		// { dg-error "" }
     return 0;
 }
 
 one   sink_5_12367(               A&);  // { dg-message "one sink_5_12367|no known conversion" }
-two   sink_5_12367(const          A&);  // { dg-message "note" }
-three sink_5_12367(volatile       A&);  // { dg-message "note" }
-six   sink_5_12367(const          A&&);  // { dg-message "note" }
-seven sink_5_12367(volatile       A&&);  // { dg-message "note" }
+two   sink_5_12367(const          A&);
+three sink_5_12367(volatile       A&);
+six   sink_5_12367(const          A&&);
+seven sink_5_12367(volatile       A&&);
 
 int test5_12367()
 {
@@ -153,12 +143,9 @@ int test5_12367()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_5_12367(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 156 }
-    sink_5_12367(source());     // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 158 }
-    sink_5_12367(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 160 }
+    sink_5_12367(cva);          // { dg-error "" }
+    sink_5_12367(source());     // { dg-error "" }
+    sink_5_12367(cv_source());  // { dg-error "" }
     return 0;
 }
 
@@ -174,7 +161,7 @@ int test5_12368()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_5_12368(cva);		// { dg-error "lvalue" }
+    sink_5_12368(cva);		// { dg-error "" }
     return 0;
 }
 
@@ -190,15 +177,15 @@ int test5_12378()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_5_12378(cva);		// { dg-error "lvalue" }
+    sink_5_12378(cva);		// { dg-error "" }
     return 0;
 }
 
 one   sink_5_12456(               A&);  // { dg-message "one sink_5_12456|no known conversion" }
-two   sink_5_12456(const          A&);  // { dg-message "note" }
-four  sink_5_12456(const volatile A&);  // { dg-message "note" }
-five  sink_5_12456(               A&&);  // { dg-message "note" }
-six   sink_5_12456(const          A&&);  // { dg-message "note" }
+two   sink_5_12456(const          A&);
+four  sink_5_12456(const volatile A&);
+five  sink_5_12456(               A&&);
+six   sink_5_12456(const          A&&);
 
 int test5_12456()
 {
@@ -206,18 +193,16 @@ int test5_12456()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_5_12456(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 209 }
-    sink_5_12456(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 211 }
+    sink_5_12456(v_source());   // { dg-error "" }
+    sink_5_12456(cv_source());  // { dg-error "" }
     return 0;
 }
 
 one   sink_5_12457(               A&);  // { dg-message "one sink_5_12457|no known conversion" }
-two   sink_5_12457(const          A&);  // { dg-message "note" }
-four  sink_5_12457(const volatile A&);  // { dg-message "note" }
-five  sink_5_12457(               A&&);  // { dg-message "note" }
-seven sink_5_12457(volatile       A&&);  // { dg-message "note" }
+two   sink_5_12457(const          A&);
+four  sink_5_12457(const volatile A&);
+five  sink_5_12457(               A&&);
+seven sink_5_12457(volatile       A&&);
 
 int test5_12457()
 {
@@ -225,16 +210,15 @@ int test5_12457()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_5_12457(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 228 }
+    sink_5_12457(cv_source());  // { dg-error "" }
     return 0;
 }
 
 one   sink_5_12467(               A&);  // { dg-message "one sink_5_12467|no known conversion" }
-two   sink_5_12467(const          A&);  // { dg-message "note" }
-four  sink_5_12467(const volatile A&);  // { dg-message "note" }
-six   sink_5_12467(const          A&&);  // { dg-message "note" }
-seven sink_5_12467(volatile       A&&);  // { dg-message "note" }
+two   sink_5_12467(const          A&);
+four  sink_5_12467(const volatile A&);
+six   sink_5_12467(const          A&&);
+seven sink_5_12467(volatile       A&&);
 
 int test5_12467()
 {
@@ -242,17 +226,15 @@ int test5_12467()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_5_12467(source());     // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 245 }
-    sink_5_12467(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 247 }
+    sink_5_12467(source());     // { dg-error "" }
+    sink_5_12467(cv_source());  // { dg-error "" }
     return 0;
 }
 
 one   sink_5_12567(               A&);  // { dg-message "one sink_5_12567|no known conversion" }
-two   sink_5_12567(const          A&);  // { dg-message "note" }
-five  sink_5_12567(               A&&);  // { dg-message "note" }
-six   sink_5_12567(const          A&&);  // { dg-message "note" }
+two   sink_5_12567(const          A&);
+five  sink_5_12567(               A&&);
+six   sink_5_12567(const          A&&);
 seven sink_5_12567(volatile       A&&);  // { dg-message "" }
 
 int test5_12567()
@@ -261,11 +243,9 @@ int test5_12567()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_5_12567(va);		// { dg-error "lvalue" }
-    sink_5_12567(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 265 }
-    sink_5_12567(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 267 }
+    sink_5_12567(va);		// { dg-error "" }
+    sink_5_12567(cva);          // { dg-error "" }
+    sink_5_12567(cv_source());  // { dg-error "" }
     return 0;
 }
 
@@ -281,8 +261,8 @@ int test5_12568()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_5_12568(va);		// { dg-error "lvalue" }
-    sink_5_12568(cva);		// { dg-error "lvalue" }
+    sink_5_12568(va);		// { dg-error "" }
+    sink_5_12568(cva);		// { dg-error "" }
     return 0;
 }
 
@@ -298,14 +278,14 @@ int test5_12578()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_5_12578(va);		// { dg-error "lvalue" }
-    sink_5_12578(cva);		// { dg-error "lvalue" }
+    sink_5_12578(va);		// { dg-error "" }
+    sink_5_12578(cva);		// { dg-error "" }
     return 0;
 }
 
 one   sink_5_12678(               A&);
-two   sink_5_12678(const          A&);  // { dg-message "note" }
-six   sink_5_12678(const          A&&);  // { dg-message "note" }
+two   sink_5_12678(const          A&);
+six   sink_5_12678(const          A&&);
 seven sink_5_12678(volatile       A&&);  // { dg-message "" }
 eight sink_5_12678(const volatile A&&);  // { dg-message "" }
 
@@ -315,18 +295,17 @@ int test5_12678()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_5_12678(va);		// { dg-error "lvalue" }
-    sink_5_12678(cva);		// { dg-error "lvalue" }
-    sink_5_12678(source());  // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 320 }
+    sink_5_12678(va);		// { dg-error "" }
+    sink_5_12678(cva);		// { dg-error "" }
+    sink_5_12678(source());  // { dg-error "" }
     return 0;
 }
 
 one   sink_5_13456(               A&);  // { dg-message "one sink_5_13456|no known conversion" }
-three sink_5_13456(volatile       A&);  // { dg-message "note" }
-four  sink_5_13456(const volatile A&);  // { dg-message "note" }
-five  sink_5_13456(               A&&);  // { dg-message "note" }
-six   sink_5_13456(const          A&&);  // { dg-message "note" }
+three sink_5_13456(volatile       A&);
+four  sink_5_13456(const volatile A&);
+five  sink_5_13456(               A&&);
+six   sink_5_13456(const          A&&);
 
 int test5_13456()
 {
@@ -334,18 +313,16 @@ int test5_13456()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_5_13456(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 337 }
-    sink_5_13456(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 339 }
+    sink_5_13456(v_source());   // { dg-error "" }
+    sink_5_13456(cv_source());  // { dg-error "" }
     return 0;
 }
 
 one   sink_5_13457(               A&);  // { dg-message "one sink_5_13457|no known conversion" }
-three sink_5_13457(volatile       A&);  // { dg-message "note" }
-four  sink_5_13457(const volatile A&);  // { dg-message "note" }
-five  sink_5_13457(               A&&);  // { dg-message "note" }
-seven sink_5_13457(volatile       A&&);  // { dg-message "note" }
+three sink_5_13457(volatile       A&);
+four  sink_5_13457(const volatile A&);
+five  sink_5_13457(               A&&);
+seven sink_5_13457(volatile       A&&);
 
 int test5_13457()
 {
@@ -353,18 +330,16 @@ int test5_13457()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_5_13457(c_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 356 }
-    sink_5_13457(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 358 }
+    sink_5_13457(c_source());   // { dg-error "" }
+    sink_5_13457(cv_source());  // { dg-error "" }
     return 0;
 }
 
 one   sink_5_13467(               A&);  // { dg-message "one sink_5_13467|no known conversion" }
-three sink_5_13467(volatile       A&);  // { dg-message "note" }
-four  sink_5_13467(const volatile A&);  // { dg-message "note" }
-six   sink_5_13467(const          A&&);  // { dg-message "note" }
-seven sink_5_13467(volatile       A&&);  // { dg-message "note" }
+three sink_5_13467(volatile       A&);
+four  sink_5_13467(const volatile A&);
+six   sink_5_13467(const          A&&);
+seven sink_5_13467(volatile       A&&);
 
 int test5_13467()
 {
@@ -372,18 +347,16 @@ int test5_13467()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_5_13467(source());     // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 375 }
-    sink_5_13467(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 377 }
+    sink_5_13467(source());     // { dg-error "" }
+    sink_5_13467(cv_source());  // { dg-error "" }
     return 0;
 }
 
 one   sink_5_13567(               A&);  // { dg-message "one sink_5_13567|no known conversion" }
-three sink_5_13567(volatile       A&);  // { dg-message "note" }
-five  sink_5_13567(               A&&);  // { dg-message "note" }
+three sink_5_13567(volatile       A&);
+five  sink_5_13567(               A&&);
 six   sink_5_13567(const          A&&);  // { dg-message "" }
-seven sink_5_13567(volatile       A&&);  // { dg-message "note" }
+seven sink_5_13567(volatile       A&&);
 
 int test5_13567()
 {
@@ -391,11 +364,9 @@ int test5_13567()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_5_13567(ca);		// { dg-error "lvalue" }
-    sink_5_13567(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 395 }
-    sink_5_13567(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 397 }
+    sink_5_13567(ca);		// { dg-error "" }
+    sink_5_13567(cva);          // { dg-error "" }
+    sink_5_13567(cv_source());  // { dg-error "" }
     return 0;
 }
 
@@ -411,8 +382,8 @@ int test5_13568()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_5_13568(ca);		// { dg-error "lvalue" }
-    sink_5_13568(cva);		// { dg-error "lvalue" }
+    sink_5_13568(ca);		// { dg-error "" }
+    sink_5_13568(cva);		// { dg-error "" }
     return 0;
 }
 
@@ -428,15 +399,15 @@ int test5_13578()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_5_13578(ca);		// { dg-error "lvalue" }
-    sink_5_13578(cva);		// { dg-error "lvalue" }
+    sink_5_13578(ca);		// { dg-error "" }
+    sink_5_13578(cva);		// { dg-error "" }
     return 0;
 }
 
 one   sink_5_13678(               A&);
 three sink_5_13678(volatile       A&);
 six   sink_5_13678(const          A&&);  // { dg-message "" }
-seven sink_5_13678(volatile       A&&);  // { dg-message "note" }
+seven sink_5_13678(volatile       A&&);
 eight sink_5_13678(const volatile A&&);  // { dg-message "" }
 
 int test5_13678()
@@ -445,18 +416,17 @@ int test5_13678()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_5_13678(ca);		// { dg-error "lvalue" }
-    sink_5_13678(cva);		// { dg-error "lvalue" }
-    sink_5_13678(source());  // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 450 }
+    sink_5_13678(ca);		// { dg-error "" }
+    sink_5_13678(cva);		// { dg-error "" }
+    sink_5_13678(source());  // { dg-error "" }
     return 0;
 }
 
 one   sink_5_14567(               A&);  // { dg-message "one sink_5_14567|no known conversion" }
-four  sink_5_14567(const volatile A&);  // { dg-message "note" }
-five  sink_5_14567(               A&&);  // { dg-message "note" }
-six   sink_5_14567(const          A&&);  // { dg-message "note" }
-seven sink_5_14567(volatile       A&&);  // { dg-message "note" }
+four  sink_5_14567(const volatile A&);
+five  sink_5_14567(               A&&);
+six   sink_5_14567(const          A&&);
+seven sink_5_14567(volatile       A&&);
 
 int test5_14567()
 {
@@ -464,16 +434,15 @@ int test5_14567()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_5_14567(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 467 }
+    sink_5_14567(cv_source());  // { dg-error "" }
     return 0;
 }
 
 one   sink_5_14678(               A&);
 four  sink_5_14678(const volatile A&);
-six   sink_5_14678(const          A&&);  // { dg-message "note" }
-seven sink_5_14678(volatile       A&&);  // { dg-message "note" }
-eight sink_5_14678(const volatile A&&);  // { dg-message "note" }
+six   sink_5_14678(const          A&&);
+seven sink_5_14678(volatile       A&&);
+eight sink_5_14678(const volatile A&&);
 
 int test5_14678()
 {
@@ -481,8 +450,7 @@ int test5_14678()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_5_14678(source());  // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 484 }
+    sink_5_14678(source());  // { dg-error "" }
     return 0;
 }
 
@@ -498,17 +466,17 @@ int test5_15678()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_5_15678(ca);		// { dg-error "lvalue" }
-    sink_5_15678(va);		// { dg-error "lvalue" }
-    sink_5_15678(cva);		// { dg-error "lvalue" }
+    sink_5_15678(ca);		// { dg-error "" }
+    sink_5_15678(va);		// { dg-error "" }
+    sink_5_15678(cva);		// { dg-error "" }
     return 0;
 }
 
 two   sink_5_23456(const          A&);  // { dg-message "two sink_5_23456|no known conversion" }
-three sink_5_23456(volatile       A&);  // { dg-message "note" }
-four  sink_5_23456(const volatile A&);  // { dg-message "note" }
-five  sink_5_23456(               A&&);  // { dg-message "note" }
-six   sink_5_23456(const          A&&);  // { dg-message "note" }
+three sink_5_23456(volatile       A&);
+four  sink_5_23456(const volatile A&);
+five  sink_5_23456(               A&&);
+six   sink_5_23456(const          A&&);
 
 int test5_23456()
 {
@@ -516,20 +484,17 @@ int test5_23456()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_5_23456(a);            // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 519 }
-    sink_5_23456(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 521 }
-    sink_5_23456(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 523 }
+    sink_5_23456(a);            // { dg-error "" }
+    sink_5_23456(v_source());   // { dg-error "" }
+    sink_5_23456(cv_source());  // { dg-error "" }
     return 0;
 }
 
 two   sink_5_23457(const          A&);  // { dg-message "two sink_5_23457|no known conversion" }
-three sink_5_23457(volatile       A&);  // { dg-message "note" }
-four  sink_5_23457(const volatile A&);  // { dg-message "note" }
-five  sink_5_23457(               A&&);  // { dg-message "note" }
-seven sink_5_23457(volatile       A&&);  // { dg-message "note" }
+three sink_5_23457(volatile       A&);
+four  sink_5_23457(const volatile A&);
+five  sink_5_23457(               A&&);
+seven sink_5_23457(volatile       A&&);
 
 int test5_23457()
 {
@@ -537,18 +502,16 @@ int test5_23457()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_5_23457(a);            // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 540 }
-    sink_5_23457(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 542 }
+    sink_5_23457(a);            // { dg-error "" }
+    sink_5_23457(cv_source());  // { dg-error "" }
     return 0;
 }
 
-two   sink_5_23458(const          A&);  // { dg-message "note" }
-three sink_5_23458(volatile       A&);  // { dg-message "note" }
-four  sink_5_23458(const volatile A&);  // { dg-message "note" }
-five  sink_5_23458(               A&&);  // { dg-message "note" }
-eight sink_5_23458(const volatile A&&);  // { dg-message "note" }
+two   sink_5_23458(const          A&);
+three sink_5_23458(volatile       A&);
+four  sink_5_23458(const volatile A&);
+five  sink_5_23458(               A&&);
+eight sink_5_23458(const volatile A&&);
 
 int test5_23458()
 {
@@ -556,16 +519,15 @@ int test5_23458()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_5_23458(a);  // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 559 }
+    sink_5_23458(a);  // { dg-error "" }
     return 0;
 }
 
 two   sink_5_23467(const          A&);  // { dg-message "two sink_5_23467|no known conversion" }
-three sink_5_23467(volatile       A&);  // { dg-message "note" }
-four  sink_5_23467(const volatile A&);  // { dg-message "note" }
-six   sink_5_23467(const          A&&);  // { dg-message "note" }
-seven sink_5_23467(volatile       A&&);  // { dg-message "note" }
+three sink_5_23467(volatile       A&);
+four  sink_5_23467(const volatile A&);
+six   sink_5_23467(const          A&&);
+seven sink_5_23467(volatile       A&&);
 
 int test5_23467()
 {
@@ -573,20 +535,17 @@ int test5_23467()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_5_23467(a);            // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 576 }
-    sink_5_23467(source());     // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 578 }
-    sink_5_23467(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 580 }
+    sink_5_23467(a);            // { dg-error "" }
+    sink_5_23467(source());     // { dg-error "" }
+    sink_5_23467(cv_source());  // { dg-error "" }
     return 0;
 }
 
-two   sink_5_23468(const          A&);  // { dg-message "note" }
-three sink_5_23468(volatile       A&);  // { dg-message "note" }
-four  sink_5_23468(const volatile A&);  // { dg-message "note" }
-six   sink_5_23468(const          A&&);  // { dg-message "note" }
-eight sink_5_23468(const volatile A&&);  // { dg-message "note" }
+two   sink_5_23468(const          A&);
+three sink_5_23468(volatile       A&);
+four  sink_5_23468(const volatile A&);
+six   sink_5_23468(const          A&&);
+eight sink_5_23468(const volatile A&&);
 
 int test5_23468()
 {
@@ -594,16 +553,15 @@ int test5_23468()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_5_23468(a);  // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 597 }
+    sink_5_23468(a);  // { dg-error "" }
    return 0;
 }
 
-two   sink_5_23478(const          A&);  // { dg-message "note" }
-three sink_5_23478(volatile       A&);  // { dg-message "note" }
-four  sink_5_23478(const volatile A&);  // { dg-message "note" }
-seven sink_5_23478(volatile       A&&);  // { dg-message "note" }
-eight sink_5_23478(const volatile A&&);  // { dg-message "note" }
+two   sink_5_23478(const          A&);
+three sink_5_23478(volatile       A&);
+four  sink_5_23478(const volatile A&);
+seven sink_5_23478(volatile       A&&);
+eight sink_5_23478(const volatile A&&);
 
 int test5_23478()
 {
@@ -611,16 +569,15 @@ int test5_23478()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_5_23478(a);  // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 614 }
+    sink_5_23478(a);  // { dg-error "" }
     return 0;
 }
 
 two   sink_5_23567(const          A&);  // { dg-message "two sink_5_23567|no known conversion" }
-three sink_5_23567(volatile       A&);  // { dg-message "note" }
-five  sink_5_23567(               A&&);  // { dg-message "note" }
-six   sink_5_23567(const          A&&);  // { dg-message "note" }
-seven sink_5_23567(volatile       A&&);  // { dg-message "note" }
+three sink_5_23567(volatile       A&);
+five  sink_5_23567(               A&&);
+six   sink_5_23567(const          A&&);
+seven sink_5_23567(volatile       A&&);
 
 int test5_23567()
 {
@@ -628,20 +585,17 @@ int test5_23567()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_5_23567(a);            // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 631 }
-    sink_5_23567(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 633 }
-    sink_5_23567(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 635 }
+    sink_5_23567(a);            // { dg-error "" }
+    sink_5_23567(cva);          // { dg-error "" }
+    sink_5_23567(cv_source());  // { dg-error "" }
     return 0;
 }
 
-two   sink_5_23568(const          A&);  // { dg-message "note" }
-three sink_5_23568(volatile       A&);  // { dg-message "note" }
-five  sink_5_23568(               A&&);  // { dg-message "note" }
-six   sink_5_23568(const          A&&);  // { dg-message "note" }
-eight sink_5_23568(const volatile A&&);  // { dg-message "" }
+two   sink_5_23568(const          A&);
+three sink_5_23568(volatile       A&);
+five  sink_5_23568(               A&&);
+six   sink_5_23568(const          A&&);
+eight sink_5_23568(const volatile A&&);
 
 int test5_23568()
 {
@@ -649,16 +603,15 @@ int test5_23568()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_5_23568(cva); // { dg-error "lvalue" }
-    sink_5_23568(a);  // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 653 }
+    sink_5_23568(cva); // { dg-error "" }
+    sink_5_23568(a);  // { dg-error "" }
     return 0;
 }
 
-two   sink_5_23578(const          A&);  // { dg-message "note" }
-three sink_5_23578(volatile       A&);  // { dg-message "note" }
-five  sink_5_23578(               A&&);  // { dg-message "note" }
-seven sink_5_23578(volatile       A&&);  // { dg-message "note" }
+two   sink_5_23578(const          A&);
+three sink_5_23578(volatile       A&);
+five  sink_5_23578(               A&&);
+seven sink_5_23578(volatile       A&&);
 eight sink_5_23578(const volatile A&&);  // { dg-message "" }
 
 int test5_23578()
@@ -667,16 +620,15 @@ int test5_23578()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_5_23578(cva); // { dg-error "lvalue" }
-    sink_5_23578(a);  // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 671 }
+    sink_5_23578(cva); // { dg-error "" }
+    sink_5_23578(a);  // { dg-error "" }
     return 0;
 }
 
-two   sink_5_23678(const          A&);  // { dg-message "note" }
-three sink_5_23678(volatile       A&);  // { dg-message "note" }
-six   sink_5_23678(const          A&&);  // { dg-message "note" }
-seven sink_5_23678(volatile       A&&);  // { dg-message "note" }
+two   sink_5_23678(const          A&);
+three sink_5_23678(volatile       A&);
+six   sink_5_23678(const          A&&);
+seven sink_5_23678(volatile       A&&);
 eight sink_5_23678(const volatile A&&);  // { dg-message "" }
 
 int test5_23678()
@@ -685,19 +637,17 @@ int test5_23678()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_5_23678(a);         // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 688 }
-    sink_5_23678(cva);	     // { dg-error "lvalue" }
-    sink_5_23678(source());  // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 691 }
+    sink_5_23678(a);         // { dg-error "" }
+    sink_5_23678(cva);	     // { dg-error "" }
+    sink_5_23678(source());  // { dg-error "" }
     return 0;
 }
 
 two   sink_5_24567(const          A&);  // { dg-message "two sink_5_24567|no known conversion" }
-four  sink_5_24567(const volatile A&);  // { dg-message "note" }
-five  sink_5_24567(               A&&);  // { dg-message "note" }
-six   sink_5_24567(const          A&&);  // { dg-message "note" }
-seven sink_5_24567(volatile       A&&);  // { dg-message "note" }
+four  sink_5_24567(const volatile A&);
+five  sink_5_24567(               A&&);
+six   sink_5_24567(const          A&&);
+seven sink_5_24567(volatile       A&&);
 
 int test5_24567()
 {
@@ -705,16 +655,15 @@ int test5_24567()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_5_24567(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 708 }
+    sink_5_24567(cv_source());  // { dg-error "" }
     return 0;
 }
 
-two   sink_5_24678(const          A&);  // { dg-message "note" }
+two   sink_5_24678(const          A&);
 four  sink_5_24678(const volatile A&);
-six   sink_5_24678(const          A&&);  // { dg-message "note" }
-seven sink_5_24678(volatile       A&&);  // { dg-message "note" }
-eight sink_5_24678(const volatile A&&);  // { dg-message "note" }
+six   sink_5_24678(const          A&&);
+seven sink_5_24678(volatile       A&&);
+eight sink_5_24678(const volatile A&&);
 
 int test5_24678()
 {
@@ -722,8 +671,7 @@ int test5_24678()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_5_24678(source());  // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 725 }
+    sink_5_24678(source());  // { dg-error "" }
     return 0;
 }
 
@@ -739,16 +687,16 @@ int test5_25678()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_5_25678(va);		// { dg-error "lvalue" }
-    sink_5_25678(cva);		// { dg-error "lvalue" }
+    sink_5_25678(va);		// { dg-error "" }
+    sink_5_25678(cva);		// { dg-error "" }
     return 0;
 }
 
 three sink_5_34567(volatile       A&);  // { dg-message "three sink_5_34567|no known conversion" }
-four  sink_5_34567(const volatile A&);  // { dg-message "note" }
-five  sink_5_34567(               A&&);  // { dg-message "note" }
-six   sink_5_34567(const          A&&);  // { dg-message "note" }
-seven sink_5_34567(volatile       A&&);  // { dg-message "note" }
+four  sink_5_34567(const volatile A&);
+five  sink_5_34567(               A&&);
+six   sink_5_34567(const          A&&);
+seven sink_5_34567(volatile       A&&);
 
 int test5_34567()
 {
@@ -756,16 +704,15 @@ int test5_34567()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_5_34567(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 759 }
+    sink_5_34567(cv_source());  // { dg-error "" }
     return 0;
 }
 
 three sink_5_34678(volatile       A&);
 four  sink_5_34678(const volatile A&);
-six   sink_5_34678(const          A&&);  // { dg-message "note" }
-seven sink_5_34678(volatile       A&&);  // { dg-message "note" }
-eight sink_5_34678(const volatile A&&);  // { dg-message "note" }
+six   sink_5_34678(const          A&&);
+seven sink_5_34678(volatile       A&&);
+eight sink_5_34678(const volatile A&&);
 
 int test5_34678()
 {
@@ -773,8 +720,7 @@ int test5_34678()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_5_34678(source());  // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 776 }
+    sink_5_34678(source());  // { dg-error "" }
     return 0;
 }
 
@@ -790,8 +736,8 @@ int test5_35678()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_5_35678(ca);		// { dg-error "lvalue" }
-    sink_5_35678(cva);		// { dg-error "lvalue" }
+    sink_5_35678(ca);		// { dg-error "" }
+    sink_5_35678(cva);		// { dg-error "" }
     return 0;
 }
 
diff --git a/gcc/testsuite/g++.dg/cpp0x/rv6n.C b/gcc/testsuite/g++.dg/cpp0x/rv6n.C
index d00c1e2..5bd9a23 100644
--- a/gcc/testsuite/g++.dg/cpp0x/rv6n.C
+++ b/gcc/testsuite/g++.dg/cpp0x/rv6n.C
@@ -31,11 +31,11 @@ const volatile A cv_source();
 // 6 at a time
 
 one   sink_6_123456(               A&);  // { dg-message "one sink_6_123456|no known conversion" }
-two   sink_6_123456(const          A&);  // { dg-message "note" }
-three sink_6_123456(volatile       A&);  // { dg-message "note" }
-four  sink_6_123456(const volatile A&);  // { dg-message "note" }
-five  sink_6_123456(               A&&);  // { dg-message "note" }
-six   sink_6_123456(const          A&&);  // { dg-message "note" }
+two   sink_6_123456(const          A&);
+three sink_6_123456(volatile       A&);
+four  sink_6_123456(const volatile A&);
+five  sink_6_123456(               A&&);
+six   sink_6_123456(const          A&&);
 
 int test6_123456()
 {
@@ -43,19 +43,17 @@ int test6_123456()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_6_123456(v_source());   // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 46 }
-    sink_6_123456(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 48 }
+    sink_6_123456(v_source());   // { dg-error "" }
+    sink_6_123456(cv_source());  // { dg-error "" }
     return 0;
 }
 
 one   sink_6_123457(               A&);  // { dg-message "one sink_6_123457|no known conversion" }
-two   sink_6_123457(const          A&);  // { dg-message "note" }
-three sink_6_123457(volatile       A&);  // { dg-message "note" }
-four  sink_6_123457(const volatile A&);  // { dg-message "note" }
-five  sink_6_123457(               A&&);  // { dg-message "note" }
-seven sink_6_123457(volatile       A&&);  // { dg-message "note" }
+two   sink_6_123457(const          A&);
+three sink_6_123457(volatile       A&);
+four  sink_6_123457(const volatile A&);
+five  sink_6_123457(               A&&);
+seven sink_6_123457(volatile       A&&);
 
 int test6_123457()
 {
@@ -63,16 +61,15 @@ int test6_123457()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_6_123457(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 66 }
+    sink_6_123457(cv_source());  // { dg-error "" }
     return 0;
 }
 
-two   sink_6_235678(const          A&);  // { dg-message "note" }
-three sink_6_235678(volatile       A&);  // { dg-message "note" }
-five  sink_6_235678(               A&&);  // { dg-message "note" }
-six   sink_6_235678(const          A&&);  // { dg-message "note" }
-seven sink_6_235678(volatile       A&&);  // { dg-message "note" }
+two   sink_6_235678(const          A&);
+three sink_6_235678(volatile       A&);
+five  sink_6_235678(               A&&);
+six   sink_6_235678(const          A&&);
+seven sink_6_235678(volatile       A&&);
 eight sink_6_235678(const volatile A&&);  // { dg-message "" }
 
 int test6_235678()
@@ -81,18 +78,17 @@ int test6_235678()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_6_235678(a);  // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 84 }
-    sink_6_235678(cva);		// { dg-error "lvalue" }
+    sink_6_235678(a);  // { dg-error "" }
+    sink_6_235678(cva);		// { dg-error "" }
     return 0;
 }
 
-two   sink_6_234678(const          A&);  // { dg-message "note" }
-three sink_6_234678(volatile       A&);  // { dg-message "note" }
-four  sink_6_234678(const volatile A&);  // { dg-message "note" }
-six   sink_6_234678(const          A&&);  // { dg-message "note" }
-seven sink_6_234678(volatile       A&&);  // { dg-message "note" }
-eight sink_6_234678(const volatile A&&);  // { dg-message "note" }
+two   sink_6_234678(const          A&);
+three sink_6_234678(volatile       A&);
+four  sink_6_234678(const volatile A&);
+six   sink_6_234678(const          A&&);
+seven sink_6_234678(volatile       A&&);
+eight sink_6_234678(const volatile A&&);
 
 int test6_234678()
 {
@@ -100,19 +96,17 @@ int test6_234678()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_6_234678(a);         // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 103 }
-    sink_6_234678(source());  // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 105 }
+    sink_6_234678(a);         // { dg-error "" }
+    sink_6_234678(source());  // { dg-error "" }
     return 0;
 }
 
-two   sink_6_234578(const          A&);  // { dg-message "note" }
-three sink_6_234578(volatile       A&);  // { dg-message "note" }
-four  sink_6_234578(const volatile A&);  // { dg-message "note" }
-five  sink_6_234578(               A&&);  // { dg-message "note" }
-seven sink_6_234578(volatile       A&&);  // { dg-message "note" }
-eight sink_6_234578(const volatile A&&);  // { dg-message "note" }
+two   sink_6_234578(const          A&);
+three sink_6_234578(volatile       A&);
+four  sink_6_234578(const volatile A&);
+five  sink_6_234578(               A&&);
+seven sink_6_234578(volatile       A&&);
+eight sink_6_234578(const volatile A&&);
 
 int test6_234578()
 {
@@ -120,17 +114,16 @@ int test6_234578()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_6_234578(a);  // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 123 }
+    sink_6_234578(a);  // { dg-error "" }
     return 0;
 }
 
-two   sink_6_234568(const          A&);  // { dg-message "note" }
-three sink_6_234568(volatile       A&);  // { dg-message "note" }
-four  sink_6_234568(const volatile A&);  // { dg-message "note" }
-five  sink_6_234568(               A&&);  // { dg-message "note" }
-six   sink_6_234568(const          A&&);  // { dg-message "note" }
-eight sink_6_234568(const volatile A&&);  // { dg-message "note" }
+two   sink_6_234568(const          A&);
+three sink_6_234568(volatile       A&);
+four  sink_6_234568(const volatile A&);
+five  sink_6_234568(               A&&);
+six   sink_6_234568(const          A&&);
+eight sink_6_234568(const volatile A&&);
 
 int test6_234568()
 {
@@ -138,17 +131,16 @@ int test6_234568()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_6_234568(a);  // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 141 }
+    sink_6_234568(a);  // { dg-error "" }
     return 0;
 }
 
 two   sink_6_234567(const          A&);  // { dg-message "two sink_6_234567|no known conversion" }
-three sink_6_234567(volatile       A&);  // { dg-message "note" }
-four  sink_6_234567(const volatile A&);  // { dg-message "note" }
-five  sink_6_234567(               A&&);  // { dg-message "note" }
-six   sink_6_234567(const          A&&);  // { dg-message "note" }
-seven sink_6_234567(volatile       A&&);  // { dg-message "note" }
+three sink_6_234567(volatile       A&);
+four  sink_6_234567(const volatile A&);
+five  sink_6_234567(               A&&);
+six   sink_6_234567(const          A&&);
+seven sink_6_234567(volatile       A&&);
 
 int test6_234567()
 {
@@ -156,19 +148,17 @@ int test6_234567()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_6_234567(a);            // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 159 }
-    sink_6_234567(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 161 }
+    sink_6_234567(a);            // { dg-error "" }
+    sink_6_234567(cv_source());  // { dg-error "" }
     return 0;
 }
 
 one   sink_6_134678(               A&);
 three sink_6_134678(volatile       A&);
 four  sink_6_134678(const volatile A&);
-six   sink_6_134678(const          A&&);  // { dg-message "note" }
-seven sink_6_134678(volatile       A&&);  // { dg-message "note" }
-eight sink_6_134678(const volatile A&&);  // { dg-message "note" }
+six   sink_6_134678(const          A&&);
+seven sink_6_134678(volatile       A&&);
+eight sink_6_134678(const volatile A&&);
 
 int test6_134678()
 {
@@ -176,17 +166,16 @@ int test6_134678()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_6_134678(source());  // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 179 }
+    sink_6_134678(source());  // { dg-error "" }
     return 0;
 }
 
 one   sink_6_124678(               A&);
-two   sink_6_124678(const          A&);  // { dg-message "note" }
+two   sink_6_124678(const          A&);
 four  sink_6_124678(const volatile A&);
-six   sink_6_124678(const          A&&);  // { dg-message "note" }
-seven sink_6_124678(volatile       A&&);  // { dg-message "note" }
-eight sink_6_124678(const volatile A&&);  // { dg-message "note" }
+six   sink_6_124678(const          A&&);
+seven sink_6_124678(volatile       A&&);
+eight sink_6_124678(const volatile A&&);
 
 int test6_124678()
 {
@@ -194,16 +183,15 @@ int test6_124678()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_6_124678(source());  // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 197 }
+    sink_6_124678(source());  // { dg-error "" }
     return 0;
 }
 
 one   sink_6_123678(               A&);
-two   sink_6_123678(const          A&);  // { dg-message "note" }
+two   sink_6_123678(const          A&);
 three sink_6_123678(volatile       A&);
-six   sink_6_123678(const          A&&);  // { dg-message "note" }
-seven sink_6_123678(volatile       A&&);  // { dg-message "note" }
+six   sink_6_123678(const          A&&);
+seven sink_6_123678(volatile       A&&);
 eight sink_6_123678(const volatile A&&);  // { dg-message "" }
 
 int test6_123678()
@@ -212,18 +200,17 @@ int test6_123678()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_6_123678(cva);		// { dg-error "lvalue" }
-    sink_6_123678(source());  // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 216 }
+    sink_6_123678(cva);		// { dg-error "" }
+    sink_6_123678(source());  // { dg-error "" }
     return 0;
 }
 
 one   sink_6_123567(               A&);  // { dg-message "one sink_6_123567|no known conversion" }
-two   sink_6_123567(const          A&);  // { dg-message "note" }
-three sink_6_123567(volatile       A&);  // { dg-message "note" }
-five  sink_6_123567(               A&&);  // { dg-message "note" }
-six   sink_6_123567(const          A&&);  // { dg-message "note" }
-seven sink_6_123567(volatile       A&&);  // { dg-message "note" }
+two   sink_6_123567(const          A&);
+three sink_6_123567(volatile       A&);
+five  sink_6_123567(               A&&);
+six   sink_6_123567(const          A&&);
+seven sink_6_123567(volatile       A&&);
 
 int test6_123567()
 {
@@ -231,10 +218,8 @@ int test6_123567()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_6_123567(cva);          // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 234 }
-    sink_6_123567(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 236 }
+    sink_6_123567(cva);          // { dg-error "" }
+    sink_6_123567(cv_source());  // { dg-error "" }
     return 0;
 }
 
@@ -251,7 +236,7 @@ int test6_123568()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_6_123568(cva); // { dg-error "lvalue" }
+    sink_6_123568(cva); // { dg-error "" }
     return 0;
 }
 
@@ -268,16 +253,16 @@ int test6_123578()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_6_123578(cva);		// { dg-error "lvalue" }
+    sink_6_123578(cva);		// { dg-error "" }
     return 0;
 }
 
 one   sink_6_123467(               A&);  // { dg-message "one sink_6_123467|no known conversion" }
-two   sink_6_123467(const          A&);  // { dg-message "note" }
-three sink_6_123467(volatile       A&);  // { dg-message "note" }
-four  sink_6_123467(const volatile A&);  // { dg-message "note" }
-six   sink_6_123467(const          A&&);  // { dg-message "note" }
-seven sink_6_123467(volatile       A&&);  // { dg-message "note" }
+two   sink_6_123467(const          A&);
+three sink_6_123467(volatile       A&);
+four  sink_6_123467(const volatile A&);
+six   sink_6_123467(const          A&&);
+seven sink_6_123467(volatile       A&&);
 
 int test6_123467()
 {
@@ -285,19 +270,17 @@ int test6_123467()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_6_123467(source());     // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 288 }
-    sink_6_123467(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 290 }
+    sink_6_123467(source());     // { dg-error "" }
+    sink_6_123467(cv_source());  // { dg-error "" }
     return 0;
 }
 
 one   sink_6_124567(               A&);  // { dg-message "one sink_6_124567|no known conversion" }
-two   sink_6_124567(const          A&);  // { dg-message "note" }
-four  sink_6_124567(const volatile A&);  // { dg-message "note" }
-five  sink_6_124567(               A&&);  // { dg-message "note" }
-six   sink_6_124567(const          A&&);  // { dg-message "note" }
-seven sink_6_124567(volatile       A&&);  // { dg-message "note" }
+two   sink_6_124567(const          A&);
+four  sink_6_124567(const volatile A&);
+five  sink_6_124567(               A&&);
+six   sink_6_124567(const          A&&);
+seven sink_6_124567(volatile       A&&);
 
 int test6_124567()
 {
@@ -305,8 +288,7 @@ int test6_124567()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_6_124567(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 308 }
+    sink_6_124567(cv_source());  // { dg-error "" }
     return 0;
 }
 
@@ -323,17 +305,17 @@ int test6_125678()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_6_125678(va);		// { dg-error "lvalue" }
-    sink_6_125678(cva);		// { dg-error "lvalue" }
+    sink_6_125678(va);		// { dg-error "" }
+    sink_6_125678(cva);		// { dg-error "" }
     return 0;
 }
 
 one   sink_6_134567(               A&);  // { dg-message "one sink_6_134567|no known conversion" }
-three sink_6_134567(volatile       A&);  // { dg-message "note" }
-four  sink_6_134567(const volatile A&);  // { dg-message "note" }
-five  sink_6_134567(               A&&);  // { dg-message "note" }
-six   sink_6_134567(const          A&&);  // { dg-message "note" }
-seven sink_6_134567(volatile       A&&);  // { dg-message "note" }
+three sink_6_134567(volatile       A&);
+four  sink_6_134567(const volatile A&);
+five  sink_6_134567(               A&&);
+six   sink_6_134567(const          A&&);
+seven sink_6_134567(volatile       A&&);
 
 int test6_134567()
 {
@@ -341,8 +323,7 @@ int test6_134567()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_6_134567(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 344 }
+    sink_6_134567(cv_source());  // { dg-error "" }
     return 0;
 }
 
@@ -359,8 +340,8 @@ int test6_135678()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_6_135678(ca);		// { dg-error "lvalue" }
-    sink_6_135678(cva);		// { dg-error "lvalue" }
+    sink_6_135678(ca);		// { dg-error "" }
+    sink_6_135678(cva);		// { dg-error "" }
     return 0;
 }
 
diff --git a/gcc/testsuite/g++.dg/cpp0x/rv7n.C b/gcc/testsuite/g++.dg/cpp0x/rv7n.C
index 7e7a664..38ca7b8 100644
--- a/gcc/testsuite/g++.dg/cpp0x/rv7n.C
+++ b/gcc/testsuite/g++.dg/cpp0x/rv7n.C
@@ -31,12 +31,12 @@ const volatile A cv_source();
 // 7 at a time
 
 one   sink_7_1234567(               A&);  // { dg-message "one sink_7_1234567|no known conversion" }
-two   sink_7_1234567(const          A&);  // { dg-message "note" }
-three sink_7_1234567(volatile       A&);  // { dg-message "note" }
-four  sink_7_1234567(const volatile A&);  // { dg-message "note" }
-five  sink_7_1234567(               A&&);  // { dg-message "note" }
-six   sink_7_1234567(const          A&&);  // { dg-message "note" }
-seven sink_7_1234567(volatile       A&&);  // { dg-message "note" }
+two   sink_7_1234567(const          A&);
+three sink_7_1234567(volatile       A&);
+four  sink_7_1234567(const volatile A&);
+five  sink_7_1234567(               A&&);
+six   sink_7_1234567(const          A&&);
+seven sink_7_1234567(volatile       A&&);
 
 int test7_1234567()
 {
@@ -44,8 +44,7 @@ int test7_1234567()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_7_1234567(cv_source());  // { dg-error "no match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 47 }
+    sink_7_1234567(cv_source());  // { dg-error "" }
     return 0;
 }
 
@@ -63,17 +62,17 @@ int test7_1235678()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_7_1235678(cva);	// { dg-error "lvalue" }
+    sink_7_1235678(cva);	// { dg-error "" }
     return 0;
 }
 
-two   sink_7_2345678(const          A&);  // { dg-message "note" }
-three sink_7_2345678(volatile       A&);  // { dg-message "note" }
-four  sink_7_2345678(const volatile A&);  // { dg-message "note" }
-five  sink_7_2345678(               A&&);  // { dg-message "note" }
-six   sink_7_2345678(const          A&&);  // { dg-message "note" }
-seven sink_7_2345678(volatile       A&&);  // { dg-message "note" }
-eight sink_7_2345678(const volatile A&&);  // { dg-message "note" }
+two   sink_7_2345678(const          A&);
+three sink_7_2345678(volatile       A&);
+four  sink_7_2345678(const volatile A&);
+five  sink_7_2345678(               A&&);
+six   sink_7_2345678(const          A&&);
+seven sink_7_2345678(volatile       A&&);
+eight sink_7_2345678(const volatile A&&);
 
 int test7_2345678()
 {
@@ -81,18 +80,17 @@ int test7_2345678()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_7_2345678(a);  // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 84 }
+    sink_7_2345678(a);  // { dg-error "" }
     return 0;
 }
 
 one   sink_7_1234678(               A&);
-two   sink_7_1234678(const          A&);  // { dg-message "note" }
+two   sink_7_1234678(const          A&);
 three sink_7_1234678(volatile       A&);
 four  sink_7_1234678(const volatile A&);
-six   sink_7_1234678(const          A&&);  // { dg-message "note" }
-seven sink_7_1234678(volatile       A&&);  // { dg-message "note" }
-eight sink_7_1234678(const volatile A&&);  // { dg-message "note" }
+six   sink_7_1234678(const          A&&);
+seven sink_7_1234678(volatile       A&&);
+eight sink_7_1234678(const volatile A&&);
 
 int test7_1234678()
 {
@@ -100,8 +98,7 @@ int test7_1234678()
     const          A ca = a; // { dg-error "deleted" }
           volatile A va;
     const volatile A cva = a; // { dg-error "deleted" }
-    sink_7_1234678(source());  // { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 103 }
+    sink_7_1234678(source());  // { dg-error "" }
     return 0;
 }
 
diff --git a/gcc/testsuite/g++.dg/cpp0x/vt-35147.C b/gcc/testsuite/g++.dg/cpp0x/vt-35147.C
index 0827bee..577b027 100644
--- a/gcc/testsuite/g++.dg/cpp0x/vt-35147.C
+++ b/gcc/testsuite/g++.dg/cpp0x/vt-35147.C
@@ -9,7 +9,6 @@ template<typename... Args>
 void g(Args&&... args)
 {
   f(forward<Args...>(args...)); // { dg-error "no matching" }
-  // { dg-message "candidate" "candidate note" { target *-*-* } 11 }
 }
 
 void h()
diff --git a/gcc/testsuite/g++.dg/expr/cond9.C b/gcc/testsuite/g++.dg/expr/cond9.C
index e8e1397..e71a84b 100644
--- a/gcc/testsuite/g++.dg/expr/cond9.C
+++ b/gcc/testsuite/g++.dg/expr/cond9.C
@@ -6,7 +6,5 @@ struct A { // { dg-message "A" }
 
 void foo(volatile A a) { 
   1 ? a : 0; // { dg-error "match|temporary" }
-  // { dg-message "candidate" "candidate note" { target *-*-* } 8 }
   1 ? 0 : a; // { dg-error "match|temporary" }
-  // { dg-message "candidate" "candidate note" { target *-*-* } 10 }
 } 
diff --git a/gcc/testsuite/g++.dg/expr/pmf-1.C b/gcc/testsuite/g++.dg/expr/pmf-1.C
index 3dd01c6..90f3431 100644
--- a/gcc/testsuite/g++.dg/expr/pmf-1.C
+++ b/gcc/testsuite/g++.dg/expr/pmf-1.C
@@ -15,6 +15,5 @@ struct A
     void (A::*p)() = &A::f;
     void (A::*q)() = &(A::f);       // { dg-error "parenthesized" "" }
     foo(&g<int>);                   // { dg-error "no matching" "" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 17 }
   }
 };
diff --git a/gcc/testsuite/g++.dg/gomp/pr26690-1.C b/gcc/testsuite/g++.dg/gomp/pr26690-1.C
index 17e01b3..403ff52 100644
--- a/gcc/testsuite/g++.dg/gomp/pr26690-1.C
+++ b/gcc/testsuite/g++.dg/gomp/pr26690-1.C
@@ -11,6 +11,5 @@ foo ()
 {
   A a(0);
 #pragma omp parallel private (a)	// { dg-error "no matching function" }
-  // { dg-message "candidate" "candidate note" { target *-*-* } 13 }
   ;
 }
diff --git a/gcc/testsuite/g++.dg/gomp/pr26690-2.C b/gcc/testsuite/g++.dg/gomp/pr26690-2.C
index ca01a3a..ec93cd1 100644
--- a/gcc/testsuite/g++.dg/gomp/pr26690-2.C
+++ b/gcc/testsuite/g++.dg/gomp/pr26690-2.C
@@ -12,6 +12,5 @@ foo ()
 {
   A a(6);
 #pragma omp parallel private (a)	// { dg-error "call of overloaded" }
-  // { dg-message "candidate" "candidate note" { target *-*-* } 14 }
   ;
 }
diff --git a/gcc/testsuite/g++.dg/init/synth2.C b/gcc/testsuite/g++.dg/init/synth2.C
index ed50467..9e8a08a 100644
--- a/gcc/testsuite/g++.dg/init/synth2.C
+++ b/gcc/testsuite/g++.dg/init/synth2.C
@@ -6,7 +6,6 @@ struct G {
 };
 
 class A				// { dg-error "" }
-// { dg-message "candidate" "candidate note" { target *-*-* } 8 }
 {
   const G g;
 };
diff --git a/gcc/testsuite/g++.dg/lookup/conv-1.C b/gcc/testsuite/g++.dg/lookup/conv-1.C
index 0c4393e..b861c60 100644
--- a/gcc/testsuite/g++.dg/lookup/conv-1.C
+++ b/gcc/testsuite/g++.dg/lookup/conv-1.C
@@ -22,6 +22,5 @@ struct B : A1, A2
 int Foo (B const &b)
 {
   return b; // { dg-error "ambiguous" "" }
-  // { dg-message "candidate" "candidate note" { target *-*-* } 24 }
 }
 
diff --git a/gcc/testsuite/g++.dg/lookup/new1.C b/gcc/testsuite/g++.dg/lookup/new1.C
index 11a6d97..3c3b02b 100644
--- a/gcc/testsuite/g++.dg/lookup/new1.C
+++ b/gcc/testsuite/g++.dg/lookup/new1.C
@@ -6,7 +6,6 @@ int main() {
   int i;
   void* operator new(__SIZE_TYPE__ s, int* p);
   int* e = new(&i) int;                    // { dg-error "no matching function" }
-  // { dg-message "candidate" "candidate note" { target *-*-* } 8 }
   int* f = new int;
   return 0;
 }
diff --git a/gcc/testsuite/g++.dg/lookup/using9.C b/gcc/testsuite/g++.dg/lookup/using9.C
index fd3e788..7b0ccd1 100644
--- a/gcc/testsuite/g++.dg/lookup/using9.C
+++ b/gcc/testsuite/g++.dg/lookup/using9.C
@@ -20,7 +20,6 @@ void h()
   using C::f;
   f('h');
   f(1);         // { dg-error "ambiguous" }
-  // { dg-message "candidate" "candidate note" { target *-*-* } 22 }
   void f(int);  // { dg-error "previous declaration" }
 }
 
diff --git a/gcc/testsuite/g++.dg/other/error13.C b/gcc/testsuite/g++.dg/other/error13.C
index 4ee935a..efda086 100644
--- a/gcc/testsuite/g++.dg/other/error13.C
+++ b/gcc/testsuite/g++.dg/other/error13.C
@@ -7,6 +7,5 @@ struct A			// { dg-message "note" }
 };
 
 struct B : A {}; // { dg-error "no matching function for call|deleted" }
-// { dg-message "candidate" "candidate note" { target *-*-* } 9 }
  
 B b; // { dg-message "synthesized method|deleted" }
diff --git a/gcc/testsuite/g++.dg/other/error20.C b/gcc/testsuite/g++.dg/other/error20.C
index bb7d7b3..dab6de4 100644
--- a/gcc/testsuite/g++.dg/other/error20.C
+++ b/gcc/testsuite/g++.dg/other/error20.C
@@ -9,5 +9,4 @@ struct A			// { dg-message "operator=|no known conversion" }
 void bar (A& a)
 {
   a.foo () = 0; // { dg-error "operand types are 'A' and 'int'" }
-  // { dg-message "candidate" "candidate note" { target *-*-* } 11 }
 }   
diff --git a/gcc/testsuite/g++.dg/other/error31.C b/gcc/testsuite/g++.dg/other/error31.C
index 95c9d73..fd428bf 100644
--- a/gcc/testsuite/g++.dg/other/error31.C
+++ b/gcc/testsuite/g++.dg/other/error31.C
@@ -10,5 +10,4 @@ foo ()
 {
   A a;
   a = ({ { 1; } });	// { dg-error "no match for" }
-  // { dg-message "candidate" "candidate note" { target *-*-* } 12 }
 }
diff --git a/gcc/testsuite/g++.dg/other/pr28114.C b/gcc/testsuite/g++.dg/other/pr28114.C
index 63ecbf5..d54fec9 100644
--- a/gcc/testsuite/g++.dg/other/pr28114.C
+++ b/gcc/testsuite/g++.dg/other/pr28114.C
@@ -6,5 +6,4 @@ template<int> void foo(struct {}*); // { dg-message "" }
 void bar()
 {
   foo<0>(0);			// { dg-error "" }
-  // { dg-message "candidate" "candidate note" { target *-*-* } 8 }
 }
diff --git a/gcc/testsuite/g++.dg/overload/ambig1.C b/gcc/testsuite/g++.dg/overload/ambig1.C
index d11e00a..21948bf 100644
--- a/gcc/testsuite/g++.dg/overload/ambig1.C
+++ b/gcc/testsuite/g++.dg/overload/ambig1.C
@@ -20,5 +20,4 @@ void f(B);			// { dg-message "note" "candidate" }
 int main()
 {
   f (42);			// { dg-error "ambiguous" "ambiguous" }
-  // { dg-message "candidate" "candidate note" { target *-*-* } 22 }
 }
diff --git a/gcc/testsuite/g++.dg/overload/arg3.C b/gcc/testsuite/g++.dg/overload/arg3.C
index 58c1694..b4fd2b7 100644
--- a/gcc/testsuite/g++.dg/overload/arg3.C
+++ b/gcc/testsuite/g++.dg/overload/arg3.C
@@ -19,5 +19,4 @@ void foo(B);			// { dg-message "initializing" }
 void bar()
 {
   foo(0); // { dg-error "no matching function" "no matching" }
-  // { dg-message "candidate" "candidate note" { target *-*-* } 21 }
 }
diff --git a/gcc/testsuite/g++.dg/overload/builtin1.C b/gcc/testsuite/g++.dg/overload/builtin1.C
index fdd2081..72080ea 100644
--- a/gcc/testsuite/g++.dg/overload/builtin1.C
+++ b/gcc/testsuite/g++.dg/overload/builtin1.C
@@ -14,5 +14,4 @@ int main ()
   A a;
   a + a;			// { dg-error "ambiguous" "ambiguous" }
   // { dg-message "operator" "match candidate text" { target *-*-* } 15 }
-  // { dg-message "candidates" "candidates" { target *-*-* } 15 }
 }
diff --git a/gcc/testsuite/g++.dg/overload/copy1.C b/gcc/testsuite/g++.dg/overload/copy1.C
index b634b05..f776a06 100644
--- a/gcc/testsuite/g++.dg/overload/copy1.C
+++ b/gcc/testsuite/g++.dg/overload/copy1.C
@@ -17,5 +17,4 @@ B
 f (B const& b)
 {
   return b;			// { dg-error "matching" "matching" }
-  // { dg-message "candidate" "candidate note" { target *-*-* } 19 }
 }
diff --git a/gcc/testsuite/g++.dg/overload/new1.C b/gcc/testsuite/g++.dg/overload/new1.C
index bf2190b..0cfbfc4 100644
--- a/gcc/testsuite/g++.dg/overload/new1.C
+++ b/gcc/testsuite/g++.dg/overload/new1.C
@@ -16,6 +16,5 @@ void f(X *x = new X[4]);       // { dg-error "" }
 void f(X *x = new (3) X(6));   // { dg-error "" } 
 
 void f(X *x = new (2) X[10]);  // { dg-error "" } 
-// { dg-message "candidate" "candidate note" { target *-*-* } 18 }
 
 void f(X *x = new X[10][5]);   // { dg-error "" } 
diff --git a/gcc/testsuite/g++.dg/overload/template4.C b/gcc/testsuite/g++.dg/overload/template4.C
index 8f00d41..7c49c6d 100644
--- a/gcc/testsuite/g++.dg/overload/template4.C
+++ b/gcc/testsuite/g++.dg/overload/template4.C
@@ -16,9 +16,6 @@ void
 test ()
 {
   foo <0> (0);		// { dg-error "is ambiguous" }
-  // { dg-message "candidate" "candidate note" { target *-*-* } 18 }
   bar <1> (0, 1);	// { dg-error "is ambiguous" }
-  // { dg-message "candidate" "candidate note" { target *-*-* } 20 }
   baz (0);		// { dg-error "is ambiguous" }
-  // { dg-message "candidate" "candidate note" { target *-*-* } 22 }
 }
diff --git a/gcc/testsuite/g++.dg/overload/using2.C b/gcc/testsuite/g++.dg/overload/using2.C
index d182454..579e4e6 100644
--- a/gcc/testsuite/g++.dg/overload/using2.C
+++ b/gcc/testsuite/g++.dg/overload/using2.C
@@ -73,12 +73,10 @@ int main () {
   exit (0);
 
   _exit (0); // { dg-error "ambiguous" }
-  // { dg-message "candidate" "candidate note" { target *-*-* } 75 }
   abort ();
 
   c1 ();
   C1 (); // { dg-error "ambiguous" }
-  // { dg-message "candidate" "candidate note" { target *-*-* } 80 }
 
   c2 ();
   C2 (); // one might expect an ambiguous call error here as well, but
@@ -86,7 +84,6 @@ int main () {
 
   c3 ();
   C3 (); // { dg-error "ambiguous" }
-  // { dg-message "candidate" "candidate note" { target *-*-* } 88 }
   C3 (0);
   C3 (0l);
 }
diff --git a/gcc/testsuite/g++.dg/parse/crash5.C b/gcc/testsuite/g++.dg/parse/crash5.C
index 0ac7029..d51f8ed 100644
--- a/gcc/testsuite/g++.dg/parse/crash5.C
+++ b/gcc/testsuite/g++.dg/parse/crash5.C
@@ -8,8 +8,6 @@ class QString { }; // { dg-error "redefinition" }
 
 const QString q () {
   QString z; // { dg-error "matching" }
-  // { dg-message "candidate" "candidate note" { target *-*-* } 10 }
   int x;
   return x ? QString () : QString (); // { dg-error "matching" }
-  // { dg-message "candidate" "candidate note" { target *-*-* } 13 }
 }
diff --git a/gcc/testsuite/g++.dg/parse/error19.C b/gcc/testsuite/g++.dg/parse/error19.C
index 6d84f71..a06d3e0 100644
--- a/gcc/testsuite/g++.dg/parse/error19.C
+++ b/gcc/testsuite/g++.dg/parse/error19.C
@@ -1,7 +1,7 @@
 // { dg-options "-fshow-column -fmessage-length=0   -ansi -pedantic-errors -Wno-long-long " }
 // PR C++/17867
 
-struct A			// { dg-message "8:operator=|no known conversion for implicit" }
+struct A			// { dg-message "8:operator=" }
 {
   A(int);
 };
@@ -10,6 +10,5 @@ const A& foo();
 
 void bar()
 {
-  foo()=A(0); // { dg-error "8:no match for 'operator='" }
-  // { dg-message "candidate" "candidate note" { target *-*-* } 13 }
+  foo()=A(0); // { dg-error "8:no match|const" }
 }
diff --git a/gcc/testsuite/g++.dg/parse/error28.C b/gcc/testsuite/g++.dg/parse/error28.C
index 3ca210a..8a8f22a 100644
--- a/gcc/testsuite/g++.dg/parse/error28.C
+++ b/gcc/testsuite/g++.dg/parse/error28.C
@@ -7,6 +7,5 @@ struct der : public virtual virt { // { dg-message "8:der::der|candidate expects
 };
 struct top : public der { 
   top () {} // { dg-bogus "der\\(const" }
-  // { dg-message "candidate" "candidate note" { target *-*-* } 9 }
 };
 // { dg-error "10:no matching function for call to 'der" "" { target *-*-* } 9 }
diff --git a/gcc/testsuite/g++.dg/tc1/dr152.C b/gcc/testsuite/g++.dg/tc1/dr152.C
index 944906c..e787f8b 100644
--- a/gcc/testsuite/g++.dg/tc1/dr152.C
+++ b/gcc/testsuite/g++.dg/tc1/dr152.C
@@ -12,7 +12,6 @@ namespace N1 {
   { 
     X x; 
     f(x);     // { dg-error "matching" "matching" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 14 }
   }
 }
 
@@ -31,7 +30,6 @@ namespace N2 {
   { 
     X<T> x; 
     N2::f(x);   // { dg-error "matching" "matching" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 33 }
   }
 
   template int foo<float>();  // { dg-message "required from here" }
diff --git a/gcc/testsuite/g++.dg/template/copy1.C b/gcc/testsuite/g++.dg/template/copy1.C
index c6b3ff8..6f5fa00 100644
--- a/gcc/testsuite/g++.dg/template/copy1.C
+++ b/gcc/testsuite/g++.dg/template/copy1.C
@@ -11,5 +11,4 @@ struct A
 };
 
 A a = 0; // { dg-error "no matching function" }
-// { dg-message "candidate" "candidate note" { target *-*-* } 13 }
 
diff --git a/gcc/testsuite/g++.dg/template/crash107.C b/gcc/testsuite/g++.dg/template/crash107.C
index bb405ac..d92ee33 100644
--- a/gcc/testsuite/g++.dg/template/crash107.C
+++ b/gcc/testsuite/g++.dg/template/crash107.C
@@ -14,7 +14,5 @@ template<typename FP_> struct Vec { // { dg-message "note" }
     }
 };
 Vec<double> v(3,4,12); // { dg-error "no matching" }
-// { dg-message "note" "note" { target *-*-* } 16 }
 Vec<double> V(12,4,3);  // { dg-error "no matching" }
-// { dg-message "note" "note" { target *-*-* } 18 }
 Vec<double> c = v^V;   // { dg-message "required" }
diff --git a/gcc/testsuite/g++.dg/template/dependent-expr5.C b/gcc/testsuite/g++.dg/template/dependent-expr5.C
index af0dfb9..ecb7a67 100644
--- a/gcc/testsuite/g++.dg/template/dependent-expr5.C
+++ b/gcc/testsuite/g++.dg/template/dependent-expr5.C
@@ -53,7 +53,7 @@ struct foo {
 
       bindb (&barf);
       bindb (&foo::barf); // { dg-error "ambiguous" }
-      // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } 55 }
+
 
       bind (&bark); // { dg-error "no matching function" }
       // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } 58 }
@@ -69,7 +69,7 @@ struct foo {
 
       bindb (&bark);
       bindb (&bar::bark); // { dg-error "ambiguous" }
-      // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } 71 }
+
     }
   };
 
@@ -105,7 +105,7 @@ struct foo {
 
       bindb (&barf);
       bindb (&foo::barf); // { dg-error "ambiguous" }
-      // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } 107 }
+
 
       bind (&bark); // { dg-error "no matching function" }
       // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } 110 }
@@ -121,7 +121,7 @@ struct foo {
 
       bindb (&bark);
       bindb (&barT::bark); // { dg-error "ambiguous" }
-      // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } 123 }
+
     }
   };
 
diff --git a/gcc/testsuite/g++.dg/template/error38.C b/gcc/testsuite/g++.dg/template/error38.C
index 14a2132..6c25b9f 100644
--- a/gcc/testsuite/g++.dg/template/error38.C
+++ b/gcc/testsuite/g++.dg/template/error38.C
@@ -32,12 +32,8 @@ int main()
 {
   A<B> a;
   a.f();			// { dg-error "" }
-  // { dg-message "candidate" "candidate note" { target *-*-* } 34 }
   a.g();			// { dg-error "" }
-  // { dg-message "candidate" "candidate note" { target *-*-* } 36 }
 
   f(i);				// { dg-error "" }
-  // { dg-message "candidate" "candidate note" { target *-*-* } 39 }
   f(p);				// { dg-error "" }
-  // { dg-message "candidate" "candidate note" { target *-*-* } 41 }
 }
diff --git a/gcc/testsuite/g++.dg/template/error40.C b/gcc/testsuite/g++.dg/template/error40.C
index 7746ed2..c5df56f 100644
--- a/gcc/testsuite/g++.dg/template/error40.C
+++ b/gcc/testsuite/g++.dg/template/error40.C
@@ -26,7 +26,5 @@ struct B
 int main()
 {
   f(1);				// { dg-error "" }
-  // { dg-message "candidate" "candidate note" { target *-*-* } 28 }
   B<A<int> >().f();		// { dg-error "" }
-  // { dg-message "candidate" "candidate note" { target *-*-* } 30 }
 }
diff --git a/gcc/testsuite/g++.dg/template/error46.C b/gcc/testsuite/g++.dg/template/error46.C
index 6cb085a..be0b813 100644
--- a/gcc/testsuite/g++.dg/template/error46.C
+++ b/gcc/testsuite/g++.dg/template/error46.C
@@ -8,4 +8,4 @@ void bar()
 {
   foo(A<0>(), A<1>()); // { dg-error "no matching" }
 }
-// { dg-message "candidate|parameter 'N' ('0' and '1')" "" { target *-*-* } 9 }
+// { dg-message "deduced conflicting values" "" { target *-*-* } 9 }
diff --git a/gcc/testsuite/g++.dg/template/error47.C b/gcc/testsuite/g++.dg/template/error47.C
index 74a5989..e598d14 100644
--- a/gcc/testsuite/g++.dg/template/error47.C
+++ b/gcc/testsuite/g++.dg/template/error47.C
@@ -6,4 +6,4 @@ void bar(void* p)
 {
   foo(0, p); // { dg-error "no matching" }
 }
-// { dg-message "candidate|parameter 'T' ('int' and 'void*')" "" { target *-*-* } 7 }
+// { dg-message "parameter 'T' .'int' and 'void.'" "" { target *-*-* } 7 }
diff --git a/gcc/testsuite/g++.dg/template/incomplete2.C b/gcc/testsuite/g++.dg/template/incomplete2.C
index b855569..bad1602 100644
--- a/gcc/testsuite/g++.dg/template/incomplete2.C
+++ b/gcc/testsuite/g++.dg/template/incomplete2.C
@@ -10,5 +10,4 @@ A a;  // { dg-error "incomplete type" }
 void bar()
 {
   foo<a>();  // { dg-error "(no matching function|could not convert)" }
-  // { dg-message "candidate" "candidate note" { target *-*-* } 12 }
 }
diff --git a/gcc/testsuite/g++.dg/template/instantiate5.C b/gcc/testsuite/g++.dg/template/instantiate5.C
index 2198087..896313d 100644
--- a/gcc/testsuite/g++.dg/template/instantiate5.C
+++ b/gcc/testsuite/g++.dg/template/instantiate5.C
@@ -19,7 +19,6 @@ struct B
 template <typename T> struct C
 {
   virtual void bar() const { T::foo(); } // { dg-error "no matching function" }
-  // { dg-message "candidate" "candidate note" { target *-*-* } 21 }
 };
 
 C<B> c;				// { dg-message "required" }
diff --git a/gcc/testsuite/g++.dg/template/local4.C b/gcc/testsuite/g++.dg/template/local4.C
index d842076..95d2990 100644
--- a/gcc/testsuite/g++.dg/template/local4.C
+++ b/gcc/testsuite/g++.dg/template/local4.C
@@ -6,5 +6,4 @@ template <typename T> void foo() {} // { dg-message "note" }
 int main () {
   struct S {};
   foo<S> (); // { dg-error "(match|template argument for|trying to instantiate)" } 
-  // { dg-message "candidate" "candidate note" { target *-*-* } 8 }
 }
diff --git a/gcc/testsuite/g++.dg/template/new3.C b/gcc/testsuite/g++.dg/template/new3.C
index 230330e..461b47b 100644
--- a/gcc/testsuite/g++.dg/template/new3.C
+++ b/gcc/testsuite/g++.dg/template/new3.C
@@ -6,7 +6,6 @@ struct C
   void f() {
     int* node;
     new (&node) int(0); // { dg-error "new" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 8 }
   }
 };
 
diff --git a/gcc/testsuite/g++.dg/template/operator9.C b/gcc/testsuite/g++.dg/template/operator9.C
index 46eef0a..dfd491d 100644
--- a/gcc/testsuite/g++.dg/template/operator9.C
+++ b/gcc/testsuite/g++.dg/template/operator9.C
@@ -5,6 +5,5 @@ template<operator+> void foo(); // { dg-error "before|non-function|template" }
 void bar()
 {
   foo();                        // { dg-error "no matching function" }
-  // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } 7 }
 }
  
diff --git a/gcc/testsuite/g++.dg/template/ptrmem2.C b/gcc/testsuite/g++.dg/template/ptrmem2.C
index 5f03580..6aa2512 100644
--- a/gcc/testsuite/g++.dg/template/ptrmem2.C
+++ b/gcc/testsuite/g++.dg/template/ptrmem2.C
@@ -12,5 +12,4 @@ template <typename T> T A::* Foo (); // { dg-error "reference" }
 void Baz ()
 {
   Foo <int &> (); // { dg-error "no matching function" "" }
-  // { dg-message "candidate" "candidate note" { target *-*-* } 14 }
 }
diff --git a/gcc/testsuite/g++.dg/template/ptrmem20.C b/gcc/testsuite/g++.dg/template/ptrmem20.C
index dee3c62..2d2453d 100644
--- a/gcc/testsuite/g++.dg/template/ptrmem20.C
+++ b/gcc/testsuite/g++.dg/template/ptrmem20.C
@@ -13,5 +13,4 @@ template<void (A::*)()> void bar(); // { dg-message "note" }
 void baz()
 {
   bar<&B::foo>();  // { dg-error "not a valid template argument|no match" }
-  // { dg-message "candidate" "candidate note" { target *-*-* } 15 }
 }
diff --git a/gcc/testsuite/g++.dg/template/qualttp5.C b/gcc/testsuite/g++.dg/template/qualttp5.C
index 8ac1952..7e74f60 100644
--- a/gcc/testsuite/g++.dg/template/qualttp5.C
+++ b/gcc/testsuite/g++.dg/template/qualttp5.C
@@ -11,7 +11,6 @@ template <template <class> class TT> void f()
 {
 	TT<int> y;
 	y = 0; // { dg-error "no match" }
-	// { dg-message "candidate" "candidate note" { target *-*-* } 13 }
 }
 
 template <class T> struct C
diff --git a/gcc/testsuite/g++.dg/template/sfinae2.C b/gcc/testsuite/g++.dg/template/sfinae2.C
index c9e1031..38eb325 100644
--- a/gcc/testsuite/g++.dg/template/sfinae2.C
+++ b/gcc/testsuite/g++.dg/template/sfinae2.C
@@ -13,6 +13,5 @@ template<int I> void fn (char (*) [cl<I>::value] = 0 ); // { dg-error "zero-size
 void foo (void)
 {
   fn<0> ();  // { dg-error "no matching function" }
-  // { dg-message "candidate" "candidate note" { target *-*-* } 15 }
 }
 
diff --git a/gcc/testsuite/g++.dg/template/spec22.C b/gcc/testsuite/g++.dg/template/spec22.C
index f916ea4..7e627f16 100644
--- a/gcc/testsuite/g++.dg/template/spec22.C
+++ b/gcc/testsuite/g++.dg/template/spec22.C
@@ -16,6 +16,6 @@ template <typename T> struct srp
 };
 ptr<int> parent_get()
 {
-  srp<int> parent;		// { dg-message "candidate" }
+  srp<int> parent;
   return parent; // { dg-error "is ambiguous" }
 }
diff --git a/gcc/testsuite/g++.dg/template/spec23.C b/gcc/testsuite/g++.dg/template/spec23.C
index 3d401f0..1c027fa 100644
--- a/gcc/testsuite/g++.dg/template/spec23.C
+++ b/gcc/testsuite/g++.dg/template/spec23.C
@@ -20,7 +20,6 @@ struct Bar
 Foo Quux (Bar const &b)
 {
   return b; // { dg-error "ambiguous" }
-  // { dg-message "candidate" "candidate note" { target *-*-* } 22 }
 }
 
 
diff --git a/gcc/testsuite/g++.dg/template/typedef4.C b/gcc/testsuite/g++.dg/template/typedef4.C
index 60fad06..2676d8f 100644
--- a/gcc/testsuite/g++.dg/template/typedef4.C
+++ b/gcc/testsuite/g++.dg/template/typedef4.C
@@ -6,5 +6,4 @@ template<typedef> void foo();  // { dg-error "no type|typedef declaration|templa
 void bar()
 {
   foo<int>();                  // { dg-error "matching" }
-  // { dg-message "candidate" "candidate note" { target *-*-* } 8 }
 }
diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/15799.C b/gcc/testsuite/g++.old-deja/g++.benjamin/15799.C
index 24725c9..35d882b 100644
--- a/gcc/testsuite/g++.old-deja/g++.benjamin/15799.C
+++ b/gcc/testsuite/g++.old-deja/g++.benjamin/15799.C
@@ -24,7 +24,6 @@ enum { first, last};
 
 void foo(void) {
   sanjose obj(first); // { dg-error "ambiguous" }
-  // { dg-message "candidate" "candidate note" { target *-*-* } 26 }
 }
 
 
diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/15800-1.C b/gcc/testsuite/g++.old-deja/g++.benjamin/15800-1.C
index 4f6d878..88d829d 100644
--- a/gcc/testsuite/g++.old-deja/g++.benjamin/15800-1.C
+++ b/gcc/testsuite/g++.old-deja/g++.benjamin/15800-1.C
@@ -13,6 +13,5 @@ extern panama dig();
 void foo() {
    panama obj;
    obj = dig(); // { dg-error "no match" }
-   // { dg-message "candidate" "candidate note" { target *-*-* } 15 }
 }
 
diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/ambiguity1.C b/gcc/testsuite/g++.old-deja/g++.brendan/ambiguity1.C
index 4706d7e..23e38e6 100644
--- a/gcc/testsuite/g++.old-deja/g++.brendan/ambiguity1.C
+++ b/gcc/testsuite/g++.old-deja/g++.brendan/ambiguity1.C
@@ -14,5 +14,4 @@ void myfunc (const B& t0); // { dg-message "note" }
 int main ()
 {
    myfunc(1);   // { dg-error "ambiguous" }
-   // { dg-message "candidate" "candidate note" { target *-*-* } 16 }
 }
diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash29.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash29.C
index 38c9d49..8b63c9f 100644
--- a/gcc/testsuite/g++.old-deja/g++.brendan/crash29.C
+++ b/gcc/testsuite/g++.old-deja/g++.brendan/crash29.C
@@ -15,6 +15,5 @@ int
 main()
 {
 	new GlobalAddress(Value());		// internal error occured here// { dg-error "no matching" }
-	// { dg-message "candidate" "candidate note" { target *-*-* } 17 }
 	//new GlobalAddress(new Value());	// This line is correct code
 }
diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash48.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash48.C
index fe75940..58a5bf4 100644
--- a/gcc/testsuite/g++.old-deja/g++.brendan/crash48.C
+++ b/gcc/testsuite/g++.old-deja/g++.brendan/crash48.C
@@ -13,12 +13,10 @@ class bug { // { dg-message "bug::bug|candidate expects" }
 bug::bug(int size) // { dg-message "bug::bug|candidate expects" }
 {
   numbers = new internal(size * size);// { dg-error "no match" }
-  // { dg-message "candidate" "candidate note" { target *-*-* } 15 }
 }
 
 int
 main()
 {
   bug test; // { dg-error "no match" }
-  // { dg-message "candidate" "candidate note" { target *-*-* } 22 }
 }
diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/cvt3.C b/gcc/testsuite/g++.old-deja/g++.brendan/cvt3.C
index 8be5d6e..79b0013 100644
--- a/gcc/testsuite/g++.old-deja/g++.brendan/cvt3.C
+++ b/gcc/testsuite/g++.old-deja/g++.brendan/cvt3.C
@@ -45,5 +45,4 @@ void
 foo (bar yylval, bar *yyvsp)
 {
   nnyacc::assign(yylval.valueList, yyvsp[0].valueList);// { dg-error "no matching" } 
-  // { dg-message "candidate" "candidate note" { target *-*-* } 47 }
 }
diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/overload1.C b/gcc/testsuite/g++.old-deja/g++.brendan/overload1.C
index 1b9415b..e7aca7e 100644
--- a/gcc/testsuite/g++.old-deja/g++.brendan/overload1.C
+++ b/gcc/testsuite/g++.old-deja/g++.brendan/overload1.C
@@ -17,6 +17,5 @@ int main ()
   Bar b;
 
   b.f ();// { dg-error "no matching" } 
-  // { dg-message "candidate" "candidate note" { target *-*-* } 19 }
   b.f (10);
 }
diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/overload4.C b/gcc/testsuite/g++.old-deja/g++.brendan/overload4.C
index 6206d0b..6184210 100644
--- a/gcc/testsuite/g++.old-deja/g++.brendan/overload4.C
+++ b/gcc/testsuite/g++.old-deja/g++.brendan/overload4.C
@@ -18,7 +18,6 @@
 	  B::WantsNew ( (NewObject) A::NewOne );
 	  // This used to die in convert_harshness_{ansi,old} cuz it
 	  // didn't know what to do about a void type.
-	  B::WantsNew ( A::NewOne );// { dg-error "no matching" } 
-	  // { dg-message "candidate" "candidate note" { target *-*-* } 21 }
+	  B::WantsNew ( A::NewOne );// { dg-error "no matching|conversion" }
       }
   };
diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/overload9.C b/gcc/testsuite/g++.old-deja/g++.brendan/overload9.C
index b24a1f6..0e24567 100644
--- a/gcc/testsuite/g++.old-deja/g++.brendan/overload9.C
+++ b/gcc/testsuite/g++.old-deja/g++.brendan/overload9.C
@@ -1,13 +1,13 @@
 // { dg-do assemble  }
 // GROUPS passed overloading
-class CLogger			// { dg-message "candidate" }
+class CLogger
 {
 public:
       void operator() (int,const char *) {}; // { dg-message "note" }
       void operator() (int,const char *, ...) {}; // { dg-message "note" }
 } Log;
 
-class CGLogger : public CLogger	// { dg-message "candidate" }
+class CGLogger : public CLogger
 {
 } GLog;
 
diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900127_01.C b/gcc/testsuite/g++.old-deja/g++.bugs/900127_01.C
index a066d58..1c315b7 100644
--- a/gcc/testsuite/g++.old-deja/g++.bugs/900127_01.C
+++ b/gcc/testsuite/g++.old-deja/g++.bugs/900127_01.C
@@ -21,7 +21,6 @@ void bar (f_ptr_t2);		// { dg-message "note" }
 void function ()
 {
   bar (foo);			// { dg-error "ambiguous" }
-  // { dg-message "candidate" "candidate note" { target *-*-* } 23 }
 }
 
 int main () { return 0; }
diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900205_04.C b/gcc/testsuite/g++.old-deja/g++.bugs/900205_04.C
index 3d8625e..4290144 100644
--- a/gcc/testsuite/g++.old-deja/g++.bugs/900205_04.C
+++ b/gcc/testsuite/g++.old-deja/g++.bugs/900205_04.C
@@ -24,7 +24,6 @@ struct0::struct0 (int, void *) // { dg-message "note" }
 }
 
 struct struct0_derived_struct_0 : public struct0 { // { dg-error "no matching|deleted" }
-  // { dg-message "candidate" "candidate note" { target *-*-* } 26 }
 };
 
 struct0_derived_struct_0  object; // { dg-message "synthesized|deleted" }
diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900330_02.C b/gcc/testsuite/g++.old-deja/g++.bugs/900330_02.C
index cad19a2..588251d 100644
--- a/gcc/testsuite/g++.old-deja/g++.bugs/900330_02.C
+++ b/gcc/testsuite/g++.old-deja/g++.bugs/900330_02.C
@@ -25,7 +25,6 @@ struct D : public B {
 void h(D* pd)
 {
   pd->f(1);		// { dg-error "no matching" } D::f(struct B) hides B::f(int)
-  // { dg-message "candidate" "candidate note" { target *-*-* } 27 }
 }
 
 int main () { return 0; }
diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900404_03.C b/gcc/testsuite/g++.old-deja/g++.bugs/900404_03.C
index 7e2829f..6f7ea3f 100644
--- a/gcc/testsuite/g++.old-deja/g++.bugs/900404_03.C
+++ b/gcc/testsuite/g++.old-deja/g++.bugs/900404_03.C
@@ -23,7 +23,6 @@ char c;
 void test ()
 {
   function0 (c,c);		// { dg-error "ambiguous" }
-  // { dg-message "candidate" "candidate note" { target *-*-* } 25 }
 }
 
 int main () { return 0; }
diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900514_03.C b/gcc/testsuite/g++.old-deja/g++.bugs/900514_03.C
index e2460d9..64223a4 100644
--- a/gcc/testsuite/g++.old-deja/g++.bugs/900514_03.C
+++ b/gcc/testsuite/g++.old-deja/g++.bugs/900514_03.C
@@ -29,7 +29,7 @@ struct t_0_st_0 {
   operator t_0_st_1 ();// { dg-message "note" } 
 };
 
-t_0_st_0 t_0_st_0_obj0;		// { dg-message "candidate" }
+t_0_st_0 t_0_st_0_obj0;
 
 void t_0_assignment ()
 {
@@ -63,7 +63,7 @@ struct t_1_st_0 {
   operator t_1_st_1 ();					// { dg-message "note" } 
 };
 
-t_1_st_0 t_1_st_0_obj0;		// { dg-message "candidate" }
+t_1_st_0 t_1_st_0_obj0;
 
 void t_1_assignment ()
 {
@@ -72,9 +72,7 @@ void t_1_assignment ()
   t_1_st_1 t_1_st_1_obj2;
 
   t_1_st_1_obj0 = t_1_st_0_obj0;			// { dg-error "no match" } 
-  // { dg-message "candidate" "candidate note" { target *-*-* } 74 }
   t_1_st_1_obj1 = t_1_st_1 (t_1_st_0_obj0);		// { dg-error "no match" } 
-  // { dg-message "candidate" "candidate note" { target *-*-* } 76 }
 }
 
 void t_1_local_init ()
@@ -98,7 +96,7 @@ struct t_2_st_0 {
   operator t_2_st_1 ();		// { dg-message "note" }
 };
 
-t_2_st_0 t_2_st_0_obj0;		// { dg-message "candidate" }
+t_2_st_0 t_2_st_0_obj0;
 
 void t_2_assignment ()
 {
diff --git a/gcc/testsuite/g++.old-deja/g++.eh/ctor1.C b/gcc/testsuite/g++.old-deja/g++.eh/ctor1.C
index 0e7218f..898f9e2 100644
--- a/gcc/testsuite/g++.old-deja/g++.eh/ctor1.C
+++ b/gcc/testsuite/g++.old-deja/g++.eh/ctor1.C
@@ -11,7 +11,6 @@ main ()
   try
     {
       throw A();		// { dg-error "no matching" "match" } can't copy
-      // { dg-message "candidate" "candidate note" { target *-*-* } 13 }
 // { dg-error "thrown expression" "expr" { target *-*-* } 13 }
     }
   catch (...) { }
diff --git a/gcc/testsuite/g++.old-deja/g++.jason/conversion11.C b/gcc/testsuite/g++.old-deja/g++.jason/conversion11.C
index 6621a27..a7c0fbe 100644
--- a/gcc/testsuite/g++.old-deja/g++.jason/conversion11.C
+++ b/gcc/testsuite/g++.old-deja/g++.jason/conversion11.C
@@ -23,7 +23,5 @@ void foo(Something* pX)
 {
   DoSomething(1);		// { dg-error "could not convert" }
   pX->DoSomething(1);		// { dg-error "no matching" } 
-  // { dg-message "candidate" "candidate note" { target *-*-* } 25 }
   (*pX).DoSomething(1);		// { dg-error "no matching" } 
-  // { dg-message "candidate" "candidate note" { target *-*-* } 27 }
 }
diff --git a/gcc/testsuite/g++.old-deja/g++.jason/crash3.C b/gcc/testsuite/g++.old-deja/g++.jason/crash3.C
index 9dcf636..e94cc7c 100644
--- a/gcc/testsuite/g++.old-deja/g++.jason/crash3.C
+++ b/gcc/testsuite/g++.old-deja/g++.jason/crash3.C
@@ -10,5 +10,4 @@ struct Node			// { dg-message "note" }
 void bug(int i)
 {
   Node* q = new Node(i);	// { dg-error "no matching" } 
-  // { dg-message "candidate" "candidate note" { target *-*-* } 12 }
 }
diff --git a/gcc/testsuite/g++.old-deja/g++.jason/overload16.C b/gcc/testsuite/g++.old-deja/g++.jason/overload16.C
index fba33ed..50503a6 100644
--- a/gcc/testsuite/g++.old-deja/g++.jason/overload16.C
+++ b/gcc/testsuite/g++.old-deja/g++.jason/overload16.C
@@ -4,5 +4,4 @@ void f (long);			// { dg-message "note" }
 int main()
 {
   f (1 & 0xffffff00UL);		// { dg-error "ambiguous" }
-  // { dg-message "candidate" "candidate note" { target *-*-* } 6 }
 }
diff --git a/gcc/testsuite/g++.old-deja/g++.jason/overload28.C b/gcc/testsuite/g++.old-deja/g++.jason/overload28.C
index fe0dae1..46bf918 100644
--- a/gcc/testsuite/g++.old-deja/g++.jason/overload28.C
+++ b/gcc/testsuite/g++.old-deja/g++.jason/overload28.C
@@ -9,5 +9,4 @@ struct Foo {
 int main()
 {
   Foo* f1 = new Foo();		// { dg-error "ambiguous" }
-  // { dg-message "candidate" "candidate note" { target *-*-* } 11 }
 }
diff --git a/gcc/testsuite/g++.old-deja/g++.jason/scoping10.C b/gcc/testsuite/g++.old-deja/g++.jason/scoping10.C
index a1b5632..8106a35 100644
--- a/gcc/testsuite/g++.old-deja/g++.jason/scoping10.C
+++ b/gcc/testsuite/g++.old-deja/g++.jason/scoping10.C
@@ -10,7 +10,6 @@ struct B : public A {
   void h () {
     extern void g ();		// { dg-message "" } 
     f("foo");			// { dg-error "" } hidden
-    // { dg-message "candidate" "candidate note" { target *-*-* } 12 }
     g("foo");			// { dg-error "" } hidden
   }
 };
diff --git a/gcc/testsuite/g++.old-deja/g++.jason/template30.C b/gcc/testsuite/g++.old-deja/g++.jason/template30.C
index 9414c06..0304ba5 100644
--- a/gcc/testsuite/g++.old-deja/g++.jason/template30.C
+++ b/gcc/testsuite/g++.old-deja/g++.jason/template30.C
@@ -11,5 +11,4 @@ int func(T, U)			// { dg-message "note" }
 int main ()
 {
   func (0, 1);			// { dg-error "ambiguous" }
-  // { dg-message "candidate" "candidate note" { target *-*-* } 13 }
 }
diff --git a/gcc/testsuite/g++.old-deja/g++.jason/temporary2.C b/gcc/testsuite/g++.old-deja/g++.jason/temporary2.C
index da216ae..efd09fd 100644
--- a/gcc/testsuite/g++.old-deja/g++.jason/temporary2.C
+++ b/gcc/testsuite/g++.old-deja/g++.jason/temporary2.C
@@ -13,7 +13,5 @@ X foo() { X x; return x; }
 int main() 
 {
   X   x(foo()); // { dg-error "no match" } Compiler doesn't warn about temporary reference.
-  // { dg-message "candidate" "candidate note" { target *-*-* } 15 }
   x.bar(foo()); // { dg-error "no match" } The same mistake is warned about in this case.
-  // { dg-message "candidate" "candidate note" { target *-*-* } 17 }
 }
diff --git a/gcc/testsuite/g++.old-deja/g++.law/arg1.C b/gcc/testsuite/g++.old-deja/g++.law/arg1.C
index 3fc42bc..2a87633 100644
--- a/gcc/testsuite/g++.old-deja/g++.law/arg1.C
+++ b/gcc/testsuite/g++.old-deja/g++.law/arg1.C
@@ -25,8 +25,6 @@ int main()
     B b;
 
     a.f(0);// { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 27 }
     b.f(0);// { dg-error "ambiguous" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 29 }
 }
 
diff --git a/gcc/testsuite/g++.old-deja/g++.law/arg11.C b/gcc/testsuite/g++.old-deja/g++.law/arg11.C
index fc93579..bd88844 100644
--- a/gcc/testsuite/g++.old-deja/g++.law/arg11.C
+++ b/gcc/testsuite/g++.old-deja/g++.law/arg11.C
@@ -18,6 +18,5 @@ foo(S *o)
 { // Neither call has a usable constructor for conversions of char[5] to Ack.
   function("adsf");// { dg-error "could not convert" }
   o->method("adsf");// { dg-error "no matching" } 
-  // { dg-message "candidate" "candidate note" { target *-*-* } 20 }
   return 0;
 }
diff --git a/gcc/testsuite/g++.old-deja/g++.law/arm9.C b/gcc/testsuite/g++.old-deja/g++.law/arm9.C
index 979ef80..c603aab 100644
--- a/gcc/testsuite/g++.old-deja/g++.law/arm9.C
+++ b/gcc/testsuite/g++.old-deja/g++.law/arm9.C
@@ -24,7 +24,6 @@ void B::set (f2 f) { std::cout << "called B\n|no known conversion";} // { dg-mes
 int main() {
     B b;
     b.set(F1); // ARM page 309: should call A.set(f1) and that what g++ does,// { dg-error "match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 26 }
                // but 13.1 of ARM clearly states that it should call B::set()
                // or generate an error because overloading works only for
                // functions within the same scope (first page of chapter 13)
diff --git a/gcc/testsuite/g++.old-deja/g++.law/ctors11.C b/gcc/testsuite/g++.old-deja/g++.law/ctors11.C
index c8b59b6..39ee76b 100644
--- a/gcc/testsuite/g++.old-deja/g++.law/ctors11.C
+++ b/gcc/testsuite/g++.old-deja/g++.law/ctors11.C
@@ -18,5 +18,4 @@ public:
 int main()
 {
   B(10);// { dg-error "match" } B doesn't have a constructor taking int
-  // { dg-message "candidate" "candidate note" { target *-*-* } 20 }
 }
diff --git a/gcc/testsuite/g++.old-deja/g++.law/ctors17.C b/gcc/testsuite/g++.old-deja/g++.law/ctors17.C
index 071a360..0d61c49 100644
--- a/gcc/testsuite/g++.old-deja/g++.law/ctors17.C
+++ b/gcc/testsuite/g++.old-deja/g++.law/ctors17.C
@@ -20,5 +20,4 @@ int main()
     X *y = new X(10, "123");
     // the compiler must reject this constructor call:
     X *x = new X("abc");// { dg-error "match" }
-    // { dg-message "candidate" "candidate note" { target *-*-* } 22 }
 }
diff --git a/gcc/testsuite/g++.old-deja/g++.law/ctors5.C b/gcc/testsuite/g++.old-deja/g++.law/ctors5.C
index 1776be9..8015c4b 100644
--- a/gcc/testsuite/g++.old-deja/g++.law/ctors5.C
+++ b/gcc/testsuite/g++.old-deja/g++.law/ctors5.C
@@ -31,7 +31,6 @@ X::X( int xi ) // { dg-error "14:return type specification for constructor inval
 const X X::x0( 0 );
 
 Y::Y() // { dg-error "6:no matching function for call to 'X::X\\(\\)'" }
-// { dg-message "candidate" "candidate note" { target *-*-* } 33 }
 {
     xx = X::x0;
 }
diff --git a/gcc/testsuite/g++.old-deja/g++.law/ctors9.C b/gcc/testsuite/g++.old-deja/g++.law/ctors9.C
index d94495a..43ba126 100644
--- a/gcc/testsuite/g++.old-deja/g++.law/ctors9.C
+++ b/gcc/testsuite/g++.old-deja/g++.law/ctors9.C
@@ -33,7 +33,6 @@ int blort(Foo& f)
 int main()
 {
   var_Foo b(2);// { dg-error "match" } 
-  // { dg-message "candidate" "candidate note" { target *-*-* } 35 }
   b->a = 0;
   int x = blort(b);
   return x;
diff --git a/gcc/testsuite/g++.old-deja/g++.law/enum4.C b/gcc/testsuite/g++.old-deja/g++.law/enum4.C
index 6695061..2c36010 100644
--- a/gcc/testsuite/g++.old-deja/g++.law/enum4.C
+++ b/gcc/testsuite/g++.old-deja/g++.law/enum4.C
@@ -24,7 +24,6 @@ int main()
   Enum e = enumerator1;
   Struct s;
   int x = funct(e+1);// { dg-error "invalid" }
-  int y = s.getI(e+1);// { dg-error "match" }
-  // { dg-message "candidate" "candidate note" { target *-*-* } 27 }
+  int y = s.getI(e+1);// { dg-error "match|conv" }
   return x+y;
 }
diff --git a/gcc/testsuite/g++.old-deja/g++.law/missed-error2.C b/gcc/testsuite/g++.old-deja/g++.law/missed-error2.C
index 7d058fd..42f70ae 100644
--- a/gcc/testsuite/g++.old-deja/g++.law/missed-error2.C
+++ b/gcc/testsuite/g++.old-deja/g++.law/missed-error2.C
@@ -32,6 +32,5 @@ static void foo(int i, int j, double x, double y) {
    std::cout << "Max(int): " << max(i,j) << " Max(double): " <<
 max(x,y) << '\n';
    std::cout << "Max(int, double): " << max(i, y) << '\n';// { dg-error "" } 
-   // { dg-message "candidate" "candidate note" { target *-*-* } 34 }
 }
 
diff --git a/gcc/testsuite/g++.old-deja/g++.law/operators9.C b/gcc/testsuite/g++.old-deja/g++.law/operators9.C
index 3c50cbd..6c37163 100644
--- a/gcc/testsuite/g++.old-deja/g++.law/operators9.C
+++ b/gcc/testsuite/g++.old-deja/g++.law/operators9.C
@@ -17,5 +17,4 @@ void
 test(B &b1, const B &b2)
 {
         b1 = b2;// { dg-error "match" }
-	// { dg-message "candidate" "candidate note" { target *-*-* } 19 }
 }
diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net2.C b/gcc/testsuite/g++.old-deja/g++.mike/net2.C
index dfc57e1..f2240dd 100644
--- a/gcc/testsuite/g++.old-deja/g++.mike/net2.C
+++ b/gcc/testsuite/g++.old-deja/g++.mike/net2.C
@@ -11,4 +11,3 @@ class A {			// { dg-message "note" } copy ctor candidate
 };
 
 A a(0); // { dg-error "ambiguous" }
-// { dg-message "candidate" "candidate note" { target *-*-* } 13 }
diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net22.C b/gcc/testsuite/g++.old-deja/g++.mike/net22.C
index 604aef9..e5e1cb1 100644
--- a/gcc/testsuite/g++.old-deja/g++.mike/net22.C
+++ b/gcc/testsuite/g++.old-deja/g++.mike/net22.C
@@ -10,6 +10,5 @@ class Child : public Parent {		// { dg-message "note" } called
 
 int main() {
   Child c( "String initializer" );	// { dg-error "match" } bad
-  // { dg-message "candidate" "candidate note" { target *-*-* } 12 }
   return 0;
 }
diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p1989.C b/gcc/testsuite/g++.old-deja/g++.mike/p1989.C
index fdede63..05b8b1c 100644
--- a/gcc/testsuite/g++.old-deja/g++.mike/p1989.C
+++ b/gcc/testsuite/g++.old-deja/g++.mike/p1989.C
@@ -197,7 +197,6 @@ List_DLS<T>::search(const T& item) const
 {
     for (Pix x=this->first(); 0 != x; this->next(x)) {
 	if (item == this->operator()(x)) // { dg-error "match" } const subversion
-	  // { dg-message "candidate" "candidate note" { target *-*-* } 199 }
 	    return x;
     }
     return 0;
diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p2431.C b/gcc/testsuite/g++.old-deja/g++.mike/p2431.C
index 4e74899..bc272af 100644
--- a/gcc/testsuite/g++.old-deja/g++.mike/p2431.C
+++ b/gcc/testsuite/g++.old-deja/g++.mike/p2431.C
@@ -19,6 +19,5 @@ class C
 	{
 		B	b;
 		A a = b;// { dg-error "match" } 
-		// { dg-message "candidate" "candidate note" { target *-*-* } 21 }
 	}
 };
diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p438.C b/gcc/testsuite/g++.old-deja/g++.mike/p438.C
index 6e78af1..1975ebf 100644
--- a/gcc/testsuite/g++.old-deja/g++.mike/p438.C
+++ b/gcc/testsuite/g++.old-deja/g++.mike/p438.C
@@ -20,5 +20,4 @@ void C::test() const
    D d;
 
    d.a(*this);	// { dg-error "match" } *this is const, so should get error
-   // { dg-message "candidate" "candidate note" { target *-*-* } 22 }
 }
diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p807a.C b/gcc/testsuite/g++.old-deja/g++.mike/p807a.C
index 04c9c48..39d4f9a 100644
--- a/gcc/testsuite/g++.old-deja/g++.mike/p807a.C
+++ b/gcc/testsuite/g++.old-deja/g++.mike/p807a.C
@@ -18,5 +18,5 @@ public:
 	operator A();		// { dg-message "note" } fn ref in err msg
 };
 
-B b;	     // { dg-message "candidate" }
+B b;
 A a = b;  // { dg-error "ambiguous" } should fail as it is ambigious.
diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p9068.C b/gcc/testsuite/g++.old-deja/g++.mike/p9068.C
index 2c62f5c..a33f60f 100644
--- a/gcc/testsuite/g++.old-deja/g++.mike/p9068.C
+++ b/gcc/testsuite/g++.old-deja/g++.mike/p9068.C
@@ -14,7 +14,6 @@ public:
 void foo (ostream& lhs, const C& rhs)
 {
   lhs << rhs.i;		// { dg-error "match" } no such i for any opr << ()
-  // { dg-message "candidate" "candidate note" { target *-*-* } 16 }
 }
 
 int& C::i () {
diff --git a/gcc/testsuite/g++.old-deja/g++.niklas/t120.C b/gcc/testsuite/g++.old-deja/g++.niklas/t120.C
index 7a54e05..3f5baea 100644
--- a/gcc/testsuite/g++.old-deja/g++.niklas/t120.C
+++ b/gcc/testsuite/g++.old-deja/g++.niklas/t120.C
@@ -2,5 +2,5 @@
 // GROUPS passed niklas ellipsis
 typedef void (*T) (...);
 void f ();
-struct S { void g (T); void h() { g(f); } };// { dg-error "match" "match" } 
+struct S { void g (T); void h() { g(f); } };// { dg-error "" "match" }
 // { dg-message "candidate|S::g|no known conversion" "match candidate text" { target *-*-* } 5 }
diff --git a/gcc/testsuite/g++.old-deja/g++.niklas/t121.C b/gcc/testsuite/g++.old-deja/g++.niklas/t121.C
index b0c9253..a2aa62f 100644
--- a/gcc/testsuite/g++.old-deja/g++.niklas/t121.C
+++ b/gcc/testsuite/g++.old-deja/g++.niklas/t121.C
@@ -2,5 +2,5 @@
 // GROUPS passed niklas ellipsis
 void f ();
 void g1 (void (*) (...)); void h1 () { g1 (f); }// { dg-error "invalid conversion" }
-struct S { void g2 (void (*) (...)); void h2 () { g2 (f); } };// { dg-error "match" "match" } 
+struct S { void g2 (void (*) (...)); void h2 () { g2 (f); } };// { dg-error "invalid conversion" "match" }
 // { dg-message "candidate|S::g2|no known conversion" "match candidate text" { target *-*-* } 5 }
diff --git a/gcc/testsuite/g++.old-deja/g++.niklas/t128.C b/gcc/testsuite/g++.old-deja/g++.niklas/t128.C
index cf0a4f7..19e3ca1 100644
--- a/gcc/testsuite/g++.old-deja/g++.niklas/t128.C
+++ b/gcc/testsuite/g++.old-deja/g++.niklas/t128.C
@@ -3,4 +3,3 @@
 struct A { A (int); };
 struct B : A {}; // { dg-message "note" } without ctor // ERROR - candidates
 void f () { B (0); }// { dg-error "match" } .*
-// { dg-message "candidate" "candidate note" { target *-*-* } 5 }
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/overload2.C b/gcc/testsuite/g++.old-deja/g++.ns/overload2.C
index facfa3f..85df6bd 100644
--- a/gcc/testsuite/g++.old-deja/g++.ns/overload2.C
+++ b/gcc/testsuite/g++.old-deja/g++.ns/overload2.C
@@ -10,5 +10,4 @@ void f();     // { dg-message "note" }
 void g()
 {
   f();        // { dg-error "ambiguous" } ambiguous, ::f or A::f ?
-  // { dg-message "candidate" "candidate note" { target *-*-* } 12 }
 }
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/using12.C b/gcc/testsuite/g++.old-deja/g++.ns/using12.C
index 343cfef..ba06b5a 100644
--- a/gcc/testsuite/g++.old-deja/g++.ns/using12.C
+++ b/gcc/testsuite/g++.old-deja/g++.ns/using12.C
@@ -16,5 +16,4 @@ void fn (int i)
   using foo::x;
   using baz::x;
   x(i); 	 // { dg-error "ambiguous" }
-  // { dg-message "candidate" "candidate note" { target *-*-* } 18 }
 }
diff --git a/gcc/testsuite/g++.old-deja/g++.other/crash24.C b/gcc/testsuite/g++.old-deja/g++.other/crash24.C
index b1fa01c..d2581f0 100644
--- a/gcc/testsuite/g++.old-deja/g++.other/crash24.C
+++ b/gcc/testsuite/g++.old-deja/g++.other/crash24.C
@@ -3,7 +3,7 @@
 
 class foo {
  public:
-   class __iterator;
+   class __iterator;		// { dg-message "declaration" }
    friend class __iterator;
    typedef __iterator const_iterator;
    virtual ~foo() { }
@@ -12,8 +12,7 @@ class foo {
 static void iteratorTest(const foo &x)
 {
    foo::const_iterator i = x.begin();		// { dg-error "incomplete type" "incomplete type" } 
-   // { dg-message "candidate" "candidate note" { target *-*-* } 14 }
-   // { dg-error "no matching" "no matching" { target *-*-* } 14 }
+   // { dg-error "no matching|const foo" "no matching" { target *-*-* } 14 }
    for (; i; ++i)
       *i;
 }
diff --git a/gcc/testsuite/g++.old-deja/g++.other/expr1.C b/gcc/testsuite/g++.old-deja/g++.other/expr1.C
index 87166f0..831876d 100644
--- a/gcc/testsuite/g++.old-deja/g++.other/expr1.C
+++ b/gcc/testsuite/g++.old-deja/g++.other/expr1.C
@@ -2,7 +2,7 @@
 
 // Simplified from bug report by Trevor Taylor <ttaylor@powerup.com.au>
 
-struct T {			// { dg-message "candidate" }
+struct T {
   int operator()(int) { } // { dg-message "operator|candidate expects" }
 };
 
diff --git a/gcc/testsuite/g++.old-deja/g++.other/overload11.C b/gcc/testsuite/g++.old-deja/g++.other/overload11.C
index 0b910e4..9b5b44b 100644
--- a/gcc/testsuite/g++.old-deja/g++.other/overload11.C
+++ b/gcc/testsuite/g++.old-deja/g++.other/overload11.C
@@ -34,7 +34,6 @@ int main (int argc, char **argv)
   (ovl) (1);                // ok
   (&ovl) (1);               // ok
   (ovl) ();                 // { dg-error "" } no matching candidates
-  // { dg-message "candidate" "candidate note" { target *-*-* } 36 }
   (&ovl) ();                // { dg-error "" } not suitable for overload resolution
   
   // 13.3.1.1 indicates that the following are errors -- the primary expression
diff --git a/gcc/testsuite/g++.old-deja/g++.other/volatile1.C b/gcc/testsuite/g++.old-deja/g++.other/volatile1.C
index ca28ec8..5c58728 100644
--- a/gcc/testsuite/g++.old-deja/g++.other/volatile1.C
+++ b/gcc/testsuite/g++.old-deja/g++.other/volatile1.C
@@ -16,6 +16,5 @@ int main(void)
 {
   volatile f_class vf;
   0 ? ret_v_f_class() : vf;	// { dg-error "match" } can't copy volatile lvalue
-  // { dg-message "candidate" "candidate note" { target *-*-* } 18 }
   return 0;
 }
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/auto_ptr.C b/gcc/testsuite/g++.old-deja/g++.pt/auto_ptr.C
index 3e672ef..08af5fb 100644
--- a/gcc/testsuite/g++.old-deja/g++.pt/auto_ptr.C
+++ b/gcc/testsuite/g++.old-deja/g++.pt/auto_ptr.C
@@ -52,5 +52,4 @@ int main() {
     x = y;
     g(f());
     h(f());			// { dg-error "match" "match" } no usable copy ctor
-    // { dg-message "candidate" "candidate note" { target *-*-* } 54 }
 }
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/crash60.C b/gcc/testsuite/g++.old-deja/g++.pt/crash60.C
index 1be4678..9f64347 100644
--- a/gcc/testsuite/g++.old-deja/g++.pt/crash60.C
+++ b/gcc/testsuite/g++.old-deja/g++.pt/crash60.C
@@ -15,5 +15,4 @@ struct S { void f( int ); };
 void f()
 {
   k( E(), (S*)0, &S::f );   // { dg-error "" } no match
-  // { dg-message "candidate" "candidate note" { target *-*-* } 17 }
 } 
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit38.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit38.C
index 1831e45..3e74829 100644
--- a/gcc/testsuite/g++.old-deja/g++.pt/explicit38.C
+++ b/gcc/testsuite/g++.old-deja/g++.pt/explicit38.C
@@ -5,5 +5,4 @@ void f(int j);			// { dg-message "note" }
 void g()
 {
   f<7, 12>(3); // { dg-error "" } no matching function.
-  // { dg-message "candidate" "candidate note" { target *-*-* } 7 }
 }
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit39.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit39.C
index 995d8c0..1be66e8 100644
--- a/gcc/testsuite/g++.old-deja/g++.pt/explicit39.C
+++ b/gcc/testsuite/g++.old-deja/g++.pt/explicit39.C
@@ -5,5 +5,4 @@ void f(int i);			// { dg-message "note" }
 void g()
 {
   f<7>(3); // { dg-error "" } no matching function.
-  // { dg-message "candidate" "candidate note" { target *-*-* } 7 }
 }
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit41.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit41.C
index c27d131..13062ed 100644
--- a/gcc/testsuite/g++.old-deja/g++.pt/explicit41.C
+++ b/gcc/testsuite/g++.old-deja/g++.pt/explicit41.C
@@ -6,5 +6,4 @@ void g()
 {
   int i;
   f<i>(7); // { dg-error "" } template argument 1 is invalid.
-  // { dg-message "candidate" "candidate note" { target *-*-* } 8 }
 }
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit67.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit67.C
index c0863a0..534309f 100644
--- a/gcc/testsuite/g++.old-deja/g++.pt/explicit67.C
+++ b/gcc/testsuite/g++.old-deja/g++.pt/explicit67.C
@@ -16,8 +16,6 @@ void foo();			// { dg-message "note" }
 void bar()
 {
   foo<S::f>(); // { dg-error "" } no matching function
-  // { dg-message "candidate" "candidate note" { target *-*-* } 18 }
   foo<g>();    // { dg-error "" } no matching function
-  // { dg-message "candidate" "candidate note" { target *-*-* } 20 }
   
 }
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ptrmem10.C b/gcc/testsuite/g++.old-deja/g++.pt/ptrmem10.C
index 6d61079..8600e82 100644
--- a/gcc/testsuite/g++.old-deja/g++.pt/ptrmem10.C
+++ b/gcc/testsuite/g++.old-deja/g++.pt/ptrmem10.C
@@ -22,7 +22,6 @@ template <typename T> void foo (int (A::*)(T));   // { dg-message "note" } candi
 void A::baz ()
 {
   foo (&A::f);  // { dg-error "ambiguous" } 
-  // { dg-message "candidate" "candidate note" { target *-*-* } 24 }
   foo (A::f);
   foo (&(A::f));
   foo (f);
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/spec35.C b/gcc/testsuite/g++.old-deja/g++.pt/spec35.C
index fc5d526..581bb8e 100644
--- a/gcc/testsuite/g++.old-deja/g++.pt/spec35.C
+++ b/gcc/testsuite/g++.old-deja/g++.pt/spec35.C
@@ -24,12 +24,8 @@ template <typename T> int Baz (T *);              // { dg-message "note" } candi
 int Baz (int const *ptr, int *ptr2)
 {
   Baz (ptr2);   // { dg-error "ambiguous" } 
-  // { dg-message "candidate" "candidate note" { target *-*-* } 26 }
   Bar (ptr2);   // { dg-error "ambiguous" } 
-  // { dg-message "candidate" "candidate note" { target *-*-* } 28 }
   Foo (ptr2);   // { dg-error "ambiguous" } 
-  // { dg-message "candidate" "candidate note" { target *-*-* } 30 }
   Qux (ptr2);   // { dg-error "ambiguous" } 
-  // { dg-message "candidate" "candidate note" { target *-*-* } 32 }
   return 0;
 }
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/t05.C b/gcc/testsuite/g++.old-deja/g++.pt/t05.C
index bf4f1ea..71fe958 100644
--- a/gcc/testsuite/g++.old-deja/g++.pt/t05.C
+++ b/gcc/testsuite/g++.old-deja/g++.pt/t05.C
@@ -7,4 +7,3 @@ template <class A> class B {    // { dg-message "note" }
   ~B();
 };
 static B<int> b_int (3);	// { dg-error "no matching function" } 
-// { dg-message "candidate" "candidate note" { target *-*-* } 9 }
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/t24.C b/gcc/testsuite/g++.old-deja/g++.pt/t24.C
index 77d1c99..890b7f7 100644
--- a/gcc/testsuite/g++.old-deja/g++.pt/t24.C
+++ b/gcc/testsuite/g++.old-deja/g++.pt/t24.C
@@ -5,5 +5,4 @@ template <class X> int f (X x, X y) { return 23; } // { dg-message "note" }
 
 int foo () {
   return f (7);	// { dg-error "" } 
-  // { dg-message "candidate" "candidate note" { target *-*-* } 7 }
 }
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/unify6.C b/gcc/testsuite/g++.old-deja/g++.pt/unify6.C
index a6f7674..d122ec2 100644
--- a/gcc/testsuite/g++.old-deja/g++.pt/unify6.C
+++ b/gcc/testsuite/g++.old-deja/g++.pt/unify6.C
@@ -24,9 +24,7 @@ template<class T> void foo(T const *){} // { dg-error "pointer to reference" }
 void f()
 {
   foo<int &>(); // { dg-error "" } attempt to build int & const *
-  // { dg-message "candidate" "candidate note" { target *-*-* } 26 }
   foo<void ()>(); // { dg-error "" } attempt to build void (const *)()
-  // { dg-message "candidate" "candidate note" { target *-*-* } 28 }
 }
 
 typedef void (*Fptr)();
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/unify8.C b/gcc/testsuite/g++.old-deja/g++.pt/unify8.C
index 3a86d97..2d9abd5 100644
--- a/gcc/testsuite/g++.old-deja/g++.pt/unify8.C
+++ b/gcc/testsuite/g++.old-deja/g++.pt/unify8.C
@@ -16,6 +16,6 @@ void Foo (float);     // { dg-message "note" } candidate
 void baz (int **p1)
 {
   Foo (p1);   // { dg-error "match" } no such function
-  // { dg-message "(candidate|incompatible cv-qualifiers)" "candidate note" { target *-*-* } 18 }
+  // { dg-message "(candidate|incompatible cv-qualifiers|conversion)" "candidate note" { target *-*-* } 18 }
   Bar (p1);   // OK
 }
diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb109.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb109.C
index b44c33d..6dc2c55 100644
--- a/gcc/testsuite/g++.old-deja/g++.robertl/eb109.C
+++ b/gcc/testsuite/g++.old-deja/g++.robertl/eb109.C
@@ -66,7 +66,6 @@ int main()
 {
     // no edge weighting, therefore type Empty:
     Graph<std::string, Empty> V(true);        // { dg-error "no match" } no bool constructor
-    // { dg-message "candidate" "candidate note" { target *-*-* } 68 }
     // ReadGraph(V, "gra1.dat");
 
     // display of vertices with successors
diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb119.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb119.C
index 329393a..c4b3ffe 100644
--- a/gcc/testsuite/g++.old-deja/g++.robertl/eb119.C
+++ b/gcc/testsuite/g++.old-deja/g++.robertl/eb119.C
@@ -7,6 +7,5 @@ void f()			// { dg-message "note" }
 int main()
 {
   f<bool>(); // { dg-error "" } .*
-  // { dg-message "candidate" "candidate note" { target *-*-* } 9 }
 }
 
diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb131.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb131.C
index 6744530..6a0f1c3 100644
--- a/gcc/testsuite/g++.old-deja/g++.robertl/eb131.C
+++ b/gcc/testsuite/g++.old-deja/g++.robertl/eb131.C
@@ -16,7 +16,5 @@ struct a {
 a::a()
 {
 	foo( &junk ); // { dg-error "match" } junk is an unqualified-id.
-	// { dg-message "candidate" "candidate note" { target *-*-* } 18 }
 	foo( &bar );  // { dg-error "match" } bar is an unqualified-id.
-	// { dg-message "candidate" "candidate note" { target *-*-* } 20 }
 }
diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb22.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb22.C
index a78ea41..e9d50de 100644
--- a/gcc/testsuite/g++.old-deja/g++.robertl/eb22.C
+++ b/gcc/testsuite/g++.old-deja/g++.robertl/eb22.C
@@ -25,5 +25,4 @@ bool f()
 {
   return 3 == MyInt();                          // { dg-error "ambiguous" "err" } 
   // { dg-message "operator==" "match candidate text" { target *-*-* } 26 }
-  // { dg-message "candidates" "note" { target *-*-* } 26 }
 }
diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb69.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb69.C
index 1ada9123..9620b87 100644
--- a/gcc/testsuite/g++.old-deja/g++.robertl/eb69.C
+++ b/gcc/testsuite/g++.old-deja/g++.robertl/eb69.C
@@ -12,7 +12,6 @@ struct foo {		        // { dg-message "note" } candidate
 struct bar : foo {
   typedef int an_int;
   bar() : bar::an_int(3) {}	// { dg-error "match" "match" } not a base
-  // { dg-message "candidate" "candidate note" { target *-*-* } 14 }
   // { dg-message "expected" "exp" { target *-*-* } 14 }
 };
 
diff --git a/libstdc++-v3/testsuite/20_util/auto_ptr/assign_neg.cc b/libstdc++-v3/testsuite/20_util/auto_ptr/assign_neg.cc
index c88d4a2..1a699b7 100644
--- a/libstdc++-v3/testsuite/20_util/auto_ptr/assign_neg.cc
+++ b/libstdc++-v3/testsuite/20_util/auto_ptr/assign_neg.cc
@@ -36,7 +36,6 @@ test01()
 {
   std::auto_ptr<Base> ptr2;
   ptr2 = new Base; // { dg-error "no match" }
-  // { dg-error "candidate" "candidate note" { target *-*-* } 38 }
   return 0;
 }
 
diff --git a/libstdc++-v3/testsuite/20_util/pair/astuple/get_by_type_neg.cc b/libstdc++-v3/testsuite/20_util/pair/astuple/get_by_type_neg.cc
index a2bb0ab..34bc46e 100644
--- a/libstdc++-v3/testsuite/20_util/pair/astuple/get_by_type_neg.cc
+++ b/libstdc++-v3/testsuite/20_util/pair/astuple/get_by_type_neg.cc
@@ -24,5 +24,5 @@ void test01()
 {
   std::pair<int, int> p;
 
-  std::get<int>(p);  // { dg-error "ambiguous" }
+  std::get<int>(p);  // { dg-error "ambiguous|lvalue" }
 }
diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/assign/unique_ptr_lvalue_neg.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/assign/unique_ptr_lvalue_neg.cc
index 48f1c00..c7d178b 100644
--- a/libstdc++-v3/testsuite/20_util/shared_ptr/assign/unique_ptr_lvalue_neg.cc
+++ b/libstdc++-v3/testsuite/20_util/shared_ptr/assign/unique_ptr_lvalue_neg.cc
@@ -35,7 +35,7 @@ test01()
 
   std::shared_ptr<A> a;
   std::unique_ptr<A> u;
-  a = u; // { dg-error "cannot bind" }
+  a = u; // { dg-error "" }
 
   return 0;
 }
diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_neg.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_neg.cc
index 563d2f8..b0e9781 100644
--- a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_neg.cc
+++ b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_neg.cc
@@ -34,7 +34,7 @@ test01()
   bool test __attribute__((unused)) = true;
 
   std::unique_ptr<A> a;
-  std::shared_ptr<A> p(a); // { dg-error "cannot bind" }
+  std::shared_ptr<A> p(a); // { dg-error "" }
 
   return 0;
 }
diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/reset_neg.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/reset_neg.cc
index 45fa86a..4f343d0 100644
--- a/libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/reset_neg.cc
+++ b/libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/reset_neg.cc
@@ -34,7 +34,7 @@ test01()
   bool test __attribute__((unused)) = true;
 
   const std::shared_ptr<A> p1(new A);
-  p1.reset();     // { dg-error "discards qualifiers" }
+  p1.reset();     // { dg-error "" }
 
   return 0;
 }
diff --git a/libstdc++-v3/testsuite/20_util/unique_ptr/assign/assign_neg.cc b/libstdc++-v3/testsuite/20_util/unique_ptr/assign/assign_neg.cc
index 76e33de..f00f9d8 100644
--- a/libstdc++-v3/testsuite/20_util/unique_ptr/assign/assign_neg.cc
+++ b/libstdc++-v3/testsuite/20_util/unique_ptr/assign/assign_neg.cc
@@ -46,7 +46,6 @@ void
 test03()
 {
   std::unique_ptr<int[2]> p1(new int[3]); // { dg-error "no match" }
-  // { dg-error "candidate" "candidate-note" { target *-*-* } 48 }
   std::unique_ptr<int[2]> p2 = p1; // { dg-error "deleted" }
 }
 
diff --git a/libstdc++-v3/testsuite/20_util/unique_ptr/cons/pointer_array_convertible_neg.cc b/libstdc++-v3/testsuite/20_util/unique_ptr/cons/pointer_array_convertible_neg.cc
index 57c2223..05a2e07 100644
--- a/libstdc++-v3/testsuite/20_util/unique_ptr/cons/pointer_array_convertible_neg.cc
+++ b/libstdc++-v3/testsuite/20_util/unique_ptr/cons/pointer_array_convertible_neg.cc
@@ -35,7 +35,7 @@ struct B : A
 void
 test01()
 {
-  std::unique_ptr<B[]> B_from_A(new A[3]); //{ dg-error "invalid conversion from" }
+  std::unique_ptr<B[]> B_from_A(new A[3]); //{ dg-error "" }
 }
 
 // { dg-prune-output "include" }
diff --git a/libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/reset_neg.cc b/libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/reset_neg.cc
index 45e2c5a..5aecd48 100644
--- a/libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/reset_neg.cc
+++ b/libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/reset_neg.cc
@@ -32,7 +32,7 @@ struct B : A
 void test01()
 {
   std::unique_ptr<B[]> up;
-  up.reset(new A[3]);		// { dg-error "invalid conversion" }
+  up.reset(new A[3]);		// { dg-error "" }
 }
 
 // { dg-prune-output "include" }
diff --git a/libstdc++-v3/testsuite/20_util/weak_ptr/comparison/cmp_neg.cc b/libstdc++-v3/testsuite/20_util/weak_ptr/comparison/cmp_neg.cc
index 377bfe0..ceb2022 100644
--- a/libstdc++-v3/testsuite/20_util/weak_ptr/comparison/cmp_neg.cc
+++ b/libstdc++-v3/testsuite/20_util/weak_ptr/comparison/cmp_neg.cc
@@ -31,7 +31,6 @@ test01()
 {
   std::weak_ptr<A> p1;
   p1 < p1;  // { dg-error "no match" }
-  // { dg-error "candidate" "candidate note" { target *-*-* } 33 }
   return 0;
 }
 
diff --git a/libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr_rvalue_neg.cc b/libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr_rvalue_neg.cc
index 662a985..defafb3 100644
--- a/libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr_rvalue_neg.cc
+++ b/libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr_rvalue_neg.cc
@@ -34,7 +34,7 @@ test01()
   bool test __attribute__((unused)) = true;
 
   std::tr1::shared_ptr<A> a;
-  a = source(); // { dg-error "no match" }
+  a = source(); // { dg-error "" }
 
   return 0;
 }
diff --git a/libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/modifiers/reset_neg.cc b/libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/modifiers/reset_neg.cc
index b3c5914..26fc3d0 100644
--- a/libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/modifiers/reset_neg.cc
+++ b/libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/modifiers/reset_neg.cc
@@ -34,6 +34,7 @@ test01()
 
   const std::tr1::shared_ptr<A> p1(new A);
   p1.reset();     // { dg-error "discards qualifiers" }
+  // { dg-error "no match" "" { target *-*-* } 36 }
 
   return 0;
 }
commit fbe3c5abf8d5baabca24ceb579d5991c91693e08
Author: Jason Merrill <jason@redhat.com>
Date:   Tue Apr 15 10:46:04 2014 -0400

    	PR c++/20332
    	PR c++/21631
    	* call.c (reference_binding): Treat lvalue/rvalue mismatch and
    	dropped cv-quals as a bad conversion.
    	(convert_like_real) [ck_ref_bind]: Explain them.
    	(compare_ics): Check badness before stripping reference
    	bindings.  Handle comparing bad reference bindings.
    	* typeck.c (comp_cv_qualification): Add overload that just takes
    	integers.
    	* cp-tree.h: Declare it.

diff --git a/gcc/cp/call.c b/gcc/cp/call.c
index 1d9a15c..23fad8f 100644
--- a/gcc/cp/call.c
+++ b/gcc/cp/call.c
@@ -1540,15 +1540,11 @@ reference_binding (tree rto, tree rfrom, tree expr, bool c_cast_p, int flags,
      [8.5.3/5 dcl.init.ref] is changed to also require direct bindings for
      const and rvalue references to rvalues of compatible class type.
      We should also do direct bindings for non-class xvalues.  */
-  if (compatible_p
-      && (is_lvalue
-	  || (((CP_TYPE_CONST_NON_VOLATILE_P (to)
-		&& !(flags & LOOKUP_NO_RVAL_BIND))
-	       || TYPE_REF_IS_RVALUE (rto))
-	      && (gl_kind
-		  || (!(flags & LOOKUP_NO_TEMP_BIND)
-		      && (CLASS_TYPE_P (from)
-			  || TREE_CODE (from) == ARRAY_TYPE))))))
+  if (related_p
+      && (gl_kind
+	  || (!(flags & LOOKUP_NO_TEMP_BIND)
+	      && (CLASS_TYPE_P (from)
+		  || TREE_CODE (from) == ARRAY_TYPE))))
     {
       /* [dcl.init.ref]
 
@@ -1603,6 +1599,16 @@ reference_binding (tree rto, tree rfrom, tree expr, bool c_cast_p, int flags,
           && !(flags & LOOKUP_PREFER_RVALUE))
 	conv->bad_p = true;
 
+      /* Nor the reverse.  */
+      if (!is_lvalue && !TYPE_REF_IS_RVALUE (rto)
+	  && (!CP_TYPE_CONST_NON_VOLATILE_P (to)
+	      || (flags & LOOKUP_NO_RVAL_BIND))
+	  && TREE_CODE (to) != FUNCTION_TYPE)
+	conv->bad_p = true;
+
+      if (!compatible_p)
+	conv->bad_p = true;
+
       return conv;
     }
   /* [class.conv.fct] A conversion function is never used to convert a
@@ -1647,24 +1653,6 @@ reference_binding (tree rto, tree rfrom, tree expr, bool c_cast_p, int flags,
      difference in top-level cv-qualification is subsumed by the
      initialization itself and does not constitute a conversion.  */
 
-  /* [dcl.init.ref]
-
-     Otherwise, the reference shall be an lvalue reference to a
-     non-volatile const type, or the reference shall be an rvalue
-     reference.  */
-  if (!CP_TYPE_CONST_NON_VOLATILE_P (to) && !TYPE_REF_IS_RVALUE (rto))
-    return NULL;
-
-  /* [dcl.init.ref]
-
-     Otherwise, a temporary of type "cv1 T1" is created and
-     initialized from the initializer expression using the rules for a
-     non-reference copy initialization.  If T1 is reference-related to
-     T2, cv1 must be the same cv-qualification as, or greater
-     cv-qualification than, cv2; otherwise, the program is ill-formed.  */
-  if (related_p && !at_least_as_qualified_p (to, from))
-    return NULL;
-
   /* We're generating a temporary now, but don't bind any more in the
      conversion (specifically, don't slice the temporary returned by a
      conversion operator).  */
@@ -1710,6 +1698,24 @@ reference_binding (tree rto, tree rfrom, tree expr, bool c_cast_p, int flags,
   conv->need_temporary_p = true;
   conv->rvaluedness_matches_p = TYPE_REF_IS_RVALUE (rto);
 
+  /* [dcl.init.ref]
+
+     Otherwise, the reference shall be an lvalue reference to a
+     non-volatile const type, or the reference shall be an rvalue
+     reference.  */
+  if (!CP_TYPE_CONST_NON_VOLATILE_P (to) && !TYPE_REF_IS_RVALUE (rto))
+    conv->bad_p = true;
+
+  /* [dcl.init.ref]
+
+     Otherwise, a temporary of type "cv1 T1" is created and
+     initialized from the initializer expression using the rules for a
+     non-reference copy initialization.  If T1 is reference-related to
+     T2, cv1 must be the same cv-qualification as, or greater
+     cv-qualification than, cv2; otherwise, the program is ill-formed.  */
+  if (related_p && !at_least_as_qualified_p (to, from))
+    conv->bad_p = true;
+
   return conv;
 }
 
@@ -6334,12 +6340,20 @@ convert_like_real (conversion *convs, tree expr, tree fn, int argnum,
 
 	if (convs->bad_p && !next_conversion (convs)->bad_p)
 	  {
-	    gcc_assert (TYPE_REF_IS_RVALUE (ref_type)
-			&& (real_lvalue_p (expr)
-			    || next_conversion(convs)->kind == ck_rvalue));
-
-	    error_at (loc, "cannot bind %qT lvalue to %qT",
-		      TREE_TYPE (expr), totype);
+	    tree extype = TREE_TYPE (expr);
+	    if (TYPE_REF_IS_RVALUE (ref_type)
+		&& real_lvalue_p (expr))
+	      error_at (loc, "cannot bind %qT lvalue to %qT",
+			extype, totype);
+	    else if (!TYPE_REF_IS_RVALUE (ref_type) && !real_lvalue_p (expr)
+		     && !CP_TYPE_CONST_NON_VOLATILE_P (TREE_TYPE (ref_type)))
+	      error_at (loc, "invalid initialization of non-const reference of "
+			"type %qT from an rvalue of type %qT", totype, extype);
+	    else if (!reference_compatible_p (TREE_TYPE (totype), extype))
+	      error_at (loc, "binding %qT to reference of type %qT "
+			"discards qualifiers", extype, totype);
+	    else
+	      gcc_unreachable ();
 	    maybe_print_user_conv_context (convs);
 	    if (fn)
 	      inform (input_location,
@@ -8230,6 +8244,12 @@ compare_ics (conversion *ics1, conversion *ics2)
   conversion *ref_conv1;
   conversion *ref_conv2;
 
+  /* Compare badness before stripping the reference conversion.  */
+  if (ics1->bad_p > ics2->bad_p)
+    return -1;
+  else if (ics1->bad_p < ics2->bad_p)
+    return 1;
+
   /* Handle implicit object parameters.  */
   maybe_handle_implicit_object (&ics1);
   maybe_handle_implicit_object (&ics2);
@@ -8258,31 +8278,19 @@ compare_ics (conversion *ics1, conversion *ics2)
      --a user-defined conversion sequence (_over.ics.user_) is a
        better conversion sequence than an ellipsis conversion sequence
        (_over.ics.ellipsis_).  */
-  rank1 = CONVERSION_RANK (ics1);
-  rank2 = CONVERSION_RANK (ics2);
+  /* Use BAD_CONVERSION_RANK because we already checked for a badness
+     mismatch.  If both ICS are bad, we try to make a decision based on
+     what would have happened if they'd been good.  This is not an
+     extension, we'll still give an error when we build up the call; this
+     just helps us give a more helpful error message.  */
+  rank1 = BAD_CONVERSION_RANK (ics1);
+  rank2 = BAD_CONVERSION_RANK (ics2);
 
   if (rank1 > rank2)
     return -1;
   else if (rank1 < rank2)
     return 1;
 
-  if (rank1 == cr_bad)
-    {
-      /* Both ICS are bad.  We try to make a decision based on what would
-	 have happened if they'd been good.  This is not an extension,
-	 we'll still give an error when we build up the call; this just
-	 helps us give a more helpful error message.  */
-      rank1 = BAD_CONVERSION_RANK (ics1);
-      rank2 = BAD_CONVERSION_RANK (ics2);
-
-      if (rank1 > rank2)
-	return -1;
-      else if (rank1 < rank2)
-	return 1;
-
-      /* We couldn't make up our minds; try to figure it out below.  */
-    }
-
   if (ics1->ellipsis_p)
     /* Both conversions are ellipsis conversions.  */
     return 0;
@@ -8602,13 +8610,30 @@ compare_ics (conversion *ics1, conversion *ics2)
 	      || (TYPE_REF_IS_RVALUE (ref_conv1->type)
 		  != TYPE_REF_IS_RVALUE (ref_conv2->type))))
 	{
+	  if (ref_conv1->bad_p
+	      && !same_type_p (TREE_TYPE (ref_conv1->type),
+			       TREE_TYPE (ref_conv2->type)))
+	    /* Don't prefer a bad conversion that drops cv-quals to a bad
+	       conversion with the wrong rvalueness.  */
+	    return 0;
 	  return (ref_conv1->rvaluedness_matches_p
 		  - ref_conv2->rvaluedness_matches_p);
 	}
 
       if (same_type_ignoring_top_level_qualifiers_p (to_type1, to_type2))
-	return comp_cv_qualification (TREE_TYPE (ref_conv2->type),
-				      TREE_TYPE (ref_conv1->type));
+	{
+	  int q1 = cp_type_quals (TREE_TYPE (ref_conv1->type));
+	  int q2 = cp_type_quals (TREE_TYPE (ref_conv2->type));
+	  if (ref_conv1->bad_p)
+	    {
+	      /* Prefer the one that drops fewer cv-quals.  */
+	      tree ftype = next_conversion (ref_conv1)->type;
+	      int fquals = cp_type_quals (ftype);
+	      q1 ^= fquals;
+	      q2 ^= fquals;
+	    }
+	  return comp_cv_qualification (q2, q1);
+	}
     }
 
   /* Neither conversion sequence is better than the other.  */
diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h
index ed8d099..f3788a7 100644
--- a/gcc/cp/cp-tree.h
+++ b/gcc/cp/cp-tree.h
@@ -6034,6 +6034,7 @@ extern bool comptypes				(tree, tree, int);
 extern bool same_type_ignoring_top_level_qualifiers_p (tree, tree);
 extern bool compparms				(const_tree, const_tree);
 extern int comp_cv_qualification		(const_tree, const_tree);
+extern int comp_cv_qualification		(int, int);
 extern int comp_cv_qual_signature		(tree, tree);
 extern tree cxx_sizeof_or_alignof_expr		(tree, enum tree_code, bool);
 extern tree cxx_sizeof_or_alignof_type		(tree, enum tree_code, bool);
diff --git a/gcc/cp/typeck.c b/gcc/cp/typeck.c
index b933b96..7420da4 100644
--- a/gcc/cp/typeck.c
+++ b/gcc/cp/typeck.c
@@ -1452,11 +1452,8 @@ at_least_as_qualified_p (const_tree type1, const_tree type2)
    more cv-qualified that TYPE1, and 0 otherwise.  */
 
 int
-comp_cv_qualification (const_tree type1, const_tree type2)
+comp_cv_qualification (int q1, int q2)
 {
-  int q1 = cp_type_quals (type1);
-  int q2 = cp_type_quals (type2);
-
   if (q1 == q2)
     return 0;
 
@@ -1468,6 +1465,14 @@ comp_cv_qualification (const_tree type1, const_tree type2)
   return 0;
 }
 
+int
+comp_cv_qualification (const_tree type1, const_tree type2)
+{
+  int q1 = cp_type_quals (type1);
+  int q2 = cp_type_quals (type2);
+  return comp_cv_qualification (q1, q2);
+}
+
 /* Returns 1 if the cv-qualification signature of TYPE1 is a proper
    subset of the cv-qualification signature of TYPE2, and the types
    are similar.  Returns -1 if the other way 'round, and 0 otherwise.  */
diff --git a/gcc/testsuite/g++.dg/conversion/op4.C b/gcc/testsuite/g++.dg/conversion/op4.C
index 7ef4b6a..cb99a38 100644
--- a/gcc/testsuite/g++.dg/conversion/op4.C
+++ b/gcc/testsuite/g++.dg/conversion/op4.C
@@ -9,11 +9,11 @@ struct X {
   }
 };
 
-void add_one (X & ref) { /* { dg-message "in passing argument" } */
+void add_one (X & ref) { /* { dg-message "argument" } */
   ++ ref.x;
 }
 
 void foo() {
   X const a (2);
-  add_one(a); /* { dg-error "invalid initialization of reference of type" } */
+  add_one(a); /* { dg-error "discards qualifiers" } */
 }
diff --git a/gcc/testsuite/g++.dg/cpp0x/diag2.C b/gcc/testsuite/g++.dg/cpp0x/diag2.C
new file mode 100644
index 0000000..0d01b1d
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/diag2.C
@@ -0,0 +1,19 @@
+// { dg-do compile { target c++11 } }
+
+struct A {};
+
+// We shouldn't arbitarily choose which of these is better.
+void f (A&);
+void f (const A&&);
+
+// But do prefer the lvalue overload here.
+void g (A&);
+void g (A&&);
+int main()
+{
+  const A a;
+  f(a);				// { dg-error "no match" }
+  // { dg-error "qualifiers" "" { target *-*-* } 15 }
+  // { dg-error "lvalue" "" { target *-*-* } 15 }
+  g(a);				// { dg-error "qualifiers" }
+}
diff --git a/gcc/testsuite/g++.dg/cpp0x/overloadn.C b/gcc/testsuite/g++.dg/cpp0x/overloadn.C
index 16c39a9..243f83b 100644
--- a/gcc/testsuite/g++.dg/cpp0x/overloadn.C
+++ b/gcc/testsuite/g++.dg/cpp0x/overloadn.C
@@ -543,9 +543,9 @@ void ucr1111(const S&&) {}
 
 int main()
 {
-  l0001(l); // { dg-error "lvalue" }
-  l0010(l); // { dg-error "lvalue" }
-  l0011(l); // { dg-error "lvalue" }
+  l0001(l); // { dg-error "" }
+  l0010(l); // { dg-error "" }
+  l0011(l); // { dg-error "" }
   l0100(l);
   l0101(l);
   l0110(l);
@@ -564,8 +564,8 @@ int main()
   cl0101(cl);
   cl0110(cl);
   cl0111(cl);
-  cl1001(cl); // { dg-error "lvalue" }
-  cl1011(cl); // { dg-error "lvalue" }
+  cl1001(cl); // { dg-error "" }
+  cl1011(cl); // { dg-error "" }
   cl1100(cl);
   cl1101(cl);
   cl1110(cl);
@@ -617,8 +617,8 @@ int main()
   ncl0101(ncl);
   ncl0110(ncl);
   ncl0111(ncl);
-  ncl1001(ncl); // { dg-error "lvalue" }
-  ncl1011(ncl); // { dg-error "lvalue" }
+  ncl1001(ncl); // { dg-error "" }
+  ncl1011(ncl); // { dg-error "" }
   ncl1100(ncl);
   ncl1101(ncl);
   ncl1110(ncl);
@@ -644,8 +644,8 @@ int main()
   ncr0101(ncr);
   ncr0110(ncr);
   ncr0111(ncr);
-  ncr1001(ncr); // { dg-error "lvalue" }
-  ncr1011(ncr); // { dg-error "lvalue" }
+  ncr1001(ncr); // { dg-error "" }
+  ncr1011(ncr); // { dg-error "" }
   ncr1100(ncr);
   ncr1101(ncr);
   ncr1110(ncr);
@@ -671,8 +671,8 @@ int main()
   ucl0101(ucl());
   ucl0110(ucl());
   ucl0111(ucl());
-  ucl1001(ucl()); // { dg-error "lvalue" }
-  ucl1011(ucl()); // { dg-error "lvalue" }
+  ucl1001(ucl()); // { dg-error "" }
+  ucl1011(ucl()); // { dg-error "" }
   ucl1100(ucl());
   ucl1101(ucl());
   ucl1110(ucl());
diff --git a/gcc/testsuite/g++.dg/diagnostic/ref1.C b/gcc/testsuite/g++.dg/diagnostic/ref1.C
new file mode 100644
index 0000000..36368de
--- /dev/null
+++ b/gcc/testsuite/g++.dg/diagnostic/ref1.C
@@ -0,0 +1,7 @@
+// PR c++/20332
+
+struct bar {};
+void foo1() {
+  bar& b = bar();		// { dg-error "rvalue" }
+}
+void foo(bar& b = bar()) {}	// { dg-error "rvalue" }
diff --git a/gcc/testsuite/g++.dg/diagnostic/ref2.C b/gcc/testsuite/g++.dg/diagnostic/ref2.C
new file mode 100644
index 0000000..ded35e0
--- /dev/null
+++ b/gcc/testsuite/g++.dg/diagnostic/ref2.C
@@ -0,0 +1,9 @@
+// PR c++/21631
+
+int f(int&);
+int f();
+
+int g(void)
+{
+  return f(1);			// { dg-error "rvalue" }
+}
diff --git a/gcc/testsuite/g++.dg/expr/cond9.C b/gcc/testsuite/g++.dg/expr/cond9.C
index e71a84b..b344c1f 100644
--- a/gcc/testsuite/g++.dg/expr/cond9.C
+++ b/gcc/testsuite/g++.dg/expr/cond9.C
@@ -1,10 +1,10 @@
 // PR c++/27666
 
 struct A { // { dg-message "A" }
-  A(int); // { dg-message "A" }
+  A(int);
 };
 
 void foo(volatile A a) { 
-  1 ? a : 0; // { dg-error "match|temporary" }
-  1 ? 0 : a; // { dg-error "match|temporary" }
+  1 ? a : 0; // { dg-error "qualifiers|lvalue|no match" }
+  1 ? 0 : a; // { dg-error "qualifiers|lvalue|no match" }
 } 
diff --git a/gcc/testsuite/g++.dg/init/synth2.C b/gcc/testsuite/g++.dg/init/synth2.C
index 9e8a08a..cc6cce0 100644
--- a/gcc/testsuite/g++.dg/init/synth2.C
+++ b/gcc/testsuite/g++.dg/init/synth2.C
@@ -1,7 +1,7 @@
 // PR c++/34180
 
 struct G {
-  G();				// { dg-message "" "candidate" }
+  G();
   G(G&);			// { dg-message "" "candidate" }
 };
 
diff --git a/gcc/testsuite/g++.dg/lookup/two-stage4.C b/gcc/testsuite/g++.dg/lookup/two-stage4.C
index bbb44af..7d97109 100644
--- a/gcc/testsuite/g++.dg/lookup/two-stage4.C
+++ b/gcc/testsuite/g++.dg/lookup/two-stage4.C
@@ -3,15 +3,15 @@
 
 template<class T> struct wrap {};
 
-template<typename T> bool& operator==(wrap<T>, wrap<T>);
+template<typename T> bool operator==(wrap<T>, wrap<T>);
 
 template<typename T>
 void g(T, wrap<wrap<int> > x)
 {
-  bool& b = x == x; // { dg-bogus "invalid initialization of reference" "" { xfail *-*-*} }
+  bool b = x == x; // { dg-bogus "" "" { xfail *-*-* } }
 }
 
-template<typename T> int& operator==(wrap<wrap<T> >, wrap<wrap<T> >);
+template<typename T> void operator==(wrap<wrap<T> >, wrap<wrap<T> >);
 
 void h()
 {
diff --git a/gcc/testsuite/g++.dg/overload/arg3.C b/gcc/testsuite/g++.dg/overload/arg3.C
index b4fd2b7..1684fcc 100644
--- a/gcc/testsuite/g++.dg/overload/arg3.C
+++ b/gcc/testsuite/g++.dg/overload/arg3.C
@@ -10,7 +10,7 @@ struct A {};
 
 struct B : A
 {
-  B(int); // { dg-message "B::B|no known conversion" "" }
+  B(int);
   B(B&);  // { dg-message "note" "" }
 };
 
@@ -18,5 +18,5 @@ void foo(B);			// { dg-message "initializing" }
 
 void bar()
 {
-  foo(0); // { dg-error "no matching function" "no matching" }
+  foo(0); // { dg-error "" }
 }
diff --git a/gcc/testsuite/g++.dg/overload/conv-op1.C b/gcc/testsuite/g++.dg/overload/conv-op1.C
index 6a63cba..cd8d9f4 100644
--- a/gcc/testsuite/g++.dg/overload/conv-op1.C
+++ b/gcc/testsuite/g++.dg/overload/conv-op1.C
@@ -11,7 +11,7 @@ void f()
 {
   const int i = 42;
   A()(i);			// { dg-message "<conversion>" }
+  // { dg-error "qualifiers" "" { target *-*-* } 13 }
 }
 
 // { dg-prune-output "no match" }
-// { dg-prune-output "candidate" }
diff --git a/gcc/testsuite/g++.dg/overload/copy1.C b/gcc/testsuite/g++.dg/overload/copy1.C
index f776a06..5c7922f 100644
--- a/gcc/testsuite/g++.dg/overload/copy1.C
+++ b/gcc/testsuite/g++.dg/overload/copy1.C
@@ -4,7 +4,7 @@ struct A;
 
 struct B
 {
-  B (A const &);		// { dg-message "note" }
+  B (A const &);
   B (B &);			// { dg-message "note" }
 };
 
@@ -16,5 +16,5 @@ struct A
 B
 f (B const& b)
 {
-  return b;			// { dg-error "matching" "matching" }
+  return b;			// { dg-error "" }
 }
diff --git a/gcc/testsuite/g++.dg/overload/volatile1.C b/gcc/testsuite/g++.dg/overload/volatile1.C
index 29f649f..0426b8f 100644
--- a/gcc/testsuite/g++.dg/overload/volatile1.C
+++ b/gcc/testsuite/g++.dg/overload/volatile1.C
@@ -1,5 +1,4 @@
 // PR c++/48118
-// { dg-prune-output "note" }
 
 struct A { };
 
@@ -9,6 +8,6 @@ void (*g)(A);
 int main()
 {
   volatile A a;
-  f(a);				// { dg-error "no match" }
-  g(a);				// { dg-error "no match" }
+  f(a);				// { dg-error "" }
+  g(a);				// { dg-error "" }
 }
diff --git a/gcc/testsuite/g++.dg/rtti/dyncast6.C b/gcc/testsuite/g++.dg/rtti/dyncast6.C
index a6329e9..bfbf511 100644
--- a/gcc/testsuite/g++.dg/rtti/dyncast6.C
+++ b/gcc/testsuite/g++.dg/rtti/dyncast6.C
@@ -38,19 +38,19 @@ void r()
   B b;
 
   A& a1 = dynamic_cast<A&>(b);
-  A& a2 = dynamic_cast<const A&>(b);                // { dg-error "invalid" }
-  A& a3 = dynamic_cast<volatile A&>(b);             // { dg-error "invalid" }
-  A& a4 = dynamic_cast<const volatile A&>(b);       // { dg-error "invalid" }
+  A& a2 = dynamic_cast<const A&>(b);                // { dg-error "" }
+  A& a3 = dynamic_cast<volatile A&>(b);             // { dg-error "" }
+  A& a4 = dynamic_cast<const volatile A&>(b);       // { dg-error "" }
 
   const A& ca1 = dynamic_cast<A&>(b);
   const A& ca2 = dynamic_cast<const A&>(b);
-  const A& ca3 = dynamic_cast<volatile A&>(b);       // { dg-error "invalid" }
-  const A& ca4 = dynamic_cast<const volatile A&>(b); // { dg-error "invalid" }
+  const A& ca3 = dynamic_cast<volatile A&>(b);       // { dg-error "" }
+  const A& ca4 = dynamic_cast<const volatile A&>(b); // { dg-error "" }
 
   volatile A& va1 = dynamic_cast<A&>(b);
-  volatile A& va2 = dynamic_cast<const A&>(b);       // { dg-error "invalid" }
+  volatile A& va2 = dynamic_cast<const A&>(b);       // { dg-error "" }
   volatile A& va3 = dynamic_cast<volatile A&>(b);
-  volatile A& va4 = dynamic_cast<const volatile A&>(b);// { dg-error "invalid" }
+  volatile A& va4 = dynamic_cast<const volatile A&>(b);// { dg-error "" }
 
   const volatile A& cva1 = dynamic_cast<A&>(b);
   const volatile A& cva2 = dynamic_cast<const A&>(b);
diff --git a/gcc/testsuite/g++.dg/template/copy1.C b/gcc/testsuite/g++.dg/template/copy1.C
index 6f5fa00..bf5a37c 100644
--- a/gcc/testsuite/g++.dg/template/copy1.C
+++ b/gcc/testsuite/g++.dg/template/copy1.C
@@ -6,9 +6,9 @@
 
 struct A
 {
-  A(A&); // { dg-message "note" }
-  template <class T> A(T); 	// { dg-message "note" }
+  A(A&);			// { dg-message "A::A" }
+  template <class T> A(T); 	// { dg-message "A::A" }
 };
 
-A a = 0; // { dg-error "no matching function" }
+A a = 0; // { dg-error "" }
 
diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/15800-1.C b/gcc/testsuite/g++.old-deja/g++.benjamin/15800-1.C
index 88d829d..5f2fe10 100644
--- a/gcc/testsuite/g++.old-deja/g++.benjamin/15800-1.C
+++ b/gcc/testsuite/g++.old-deja/g++.benjamin/15800-1.C
@@ -12,6 +12,6 @@ extern panama dig();
 
 void foo() {
    panama obj;
-   obj = dig(); // { dg-error "no match" }
+   obj = dig(); // { dg-error "rvalue" }
 }
 
diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/cvt3.C b/gcc/testsuite/g++.old-deja/g++.brendan/cvt3.C
index 79b0013..71c6866 100644
--- a/gcc/testsuite/g++.old-deja/g++.brendan/cvt3.C
+++ b/gcc/testsuite/g++.old-deja/g++.brendan/cvt3.C
@@ -44,5 +44,5 @@ public:
 void
 foo (bar yylval, bar *yyvsp)
 {
-  nnyacc::assign(yylval.valueList, yyvsp[0].valueList);// { dg-error "no matching" } 
+  nnyacc::assign(yylval.valueList, yyvsp[0].valueList);// { dg-error "no matching|rvalue" } 
 }
diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900514_03.C b/gcc/testsuite/g++.old-deja/g++.bugs/900514_03.C
index 64223a4..0d3cb9b 100644
--- a/gcc/testsuite/g++.old-deja/g++.bugs/900514_03.C
+++ b/gcc/testsuite/g++.old-deja/g++.bugs/900514_03.C
@@ -71,8 +71,8 @@ void t_1_assignment ()
   t_1_st_1 t_1_st_1_obj1;
   t_1_st_1 t_1_st_1_obj2;
 
-  t_1_st_1_obj0 = t_1_st_0_obj0;			// { dg-error "no match" } 
-  t_1_st_1_obj1 = t_1_st_1 (t_1_st_0_obj0);		// { dg-error "no match" } 
+  t_1_st_1_obj0 = t_1_st_0_obj0;			// { dg-error "no match|conversion" } 
+  t_1_st_1_obj1 = t_1_st_1 (t_1_st_0_obj0);		// { dg-error "no match|rvalue" } 
 }
 
 void t_1_local_init ()
diff --git a/gcc/testsuite/g++.old-deja/g++.eh/ctor1.C b/gcc/testsuite/g++.old-deja/g++.eh/ctor1.C
index 898f9e2..9b4adaf 100644
--- a/gcc/testsuite/g++.old-deja/g++.eh/ctor1.C
+++ b/gcc/testsuite/g++.old-deja/g++.eh/ctor1.C
@@ -1,7 +1,7 @@
 // { dg-do assemble  }
 struct A
 {
-  A();				// { dg-message "A::A|candidate expects" } candidate
+  A();
   A(A&);			// { dg-message "A::A|no known conversion" } referenced below
 };
 
@@ -10,7 +10,7 @@ main ()
 {
   try
     {
-      throw A();		// { dg-error "no matching" "match" } can't copy
+      throw A();		// { dg-error "rvalue" "" } can't copy
 // { dg-error "thrown expression" "expr" { target *-*-* } 13 }
     }
   catch (...) { }
diff --git a/gcc/testsuite/g++.old-deja/g++.jason/temporary2.C b/gcc/testsuite/g++.old-deja/g++.jason/temporary2.C
index efd09fd..e557384 100644
--- a/gcc/testsuite/g++.old-deja/g++.jason/temporary2.C
+++ b/gcc/testsuite/g++.old-deja/g++.jason/temporary2.C
@@ -2,7 +2,7 @@
 class X // Indentation has been done so to see the similarities.
 {
 public:
-  X() {}		  // { dg-message "note" } referenced below
+  X() {}
          X(X& x) {x.i=7;} // { dg-message "note" } Both functions modify the
   void bar(X& x) {x.i=7;} // { dg-message "note" } reference parameter x.
   int i;
@@ -12,6 +12,6 @@ X foo() { X x; return x; }
 
 int main() 
 {
-  X   x(foo()); // { dg-error "no match" } Compiler doesn't warn about temporary reference.
-  x.bar(foo()); // { dg-error "no match" } The same mistake is warned about in this case.
+  X   x(foo()); // { dg-error "rvalue" } Compiler doesn't warn about temporary reference.
+  x.bar(foo()); // { dg-error "rvalue" } The same mistake is warned about in this case.
 }
diff --git a/gcc/testsuite/g++.old-deja/g++.law/cvt20.C b/gcc/testsuite/g++.old-deja/g++.law/cvt20.C
index 9389a10..f5c703b 100644
--- a/gcc/testsuite/g++.old-deja/g++.law/cvt20.C
+++ b/gcc/testsuite/g++.old-deja/g++.law/cvt20.C
@@ -9,7 +9,7 @@
 
 // Compiles fine with Sun CC 2.1
 
-void f(char *& x) // { dg-message "passing argument" }
+void f(const char *& x) // { dg-message "argument" }
 {
   x++;
 }
diff --git a/gcc/testsuite/g++.old-deja/g++.law/enum4.C b/gcc/testsuite/g++.old-deja/g++.law/enum4.C
index 2c36010..363f114 100644
--- a/gcc/testsuite/g++.old-deja/g++.law/enum4.C
+++ b/gcc/testsuite/g++.old-deja/g++.law/enum4.C
@@ -24,6 +24,6 @@ int main()
   Enum e = enumerator1;
   Struct s;
   int x = funct(e+1);// { dg-error "invalid" }
-  int y = s.getI(e+1);// { dg-error "match|conv" }
+  int y = s.getI(e+1);// { dg-error "invalid" }
   return x+y;
 }
diff --git a/gcc/testsuite/g++.old-deja/g++.law/init8.C b/gcc/testsuite/g++.old-deja/g++.law/init8.C
index 5ed619b..829dd9b 100644
--- a/gcc/testsuite/g++.old-deja/g++.law/init8.C
+++ b/gcc/testsuite/g++.old-deja/g++.law/init8.C
@@ -8,7 +8,7 @@
 
 
 const int ic = 1;
-void f(int& arg)  // { dg-message "passing argument 1" }
+void f(int& arg)  // { dg-message "argument 1" }
 {
         if (arg) ;
 }
@@ -16,7 +16,7 @@ const int& icr = ic;
 
 int main(void)
 {
-  f(icr);   // { dg-error "invalid initialization" }
+  f(icr);   // { dg-error "const" }
 
   return 0;
 }
diff --git a/gcc/testsuite/g++.old-deja/g++.law/operators9.C b/gcc/testsuite/g++.old-deja/g++.law/operators9.C
index 6c37163..8d5b686d 100644
--- a/gcc/testsuite/g++.old-deja/g++.law/operators9.C
+++ b/gcc/testsuite/g++.old-deja/g++.law/operators9.C
@@ -16,5 +16,5 @@ public:
 void
 test(B &b1, const B &b2)
 {
-        b1 = b2;// { dg-error "match" }
+        b1 = b2;// { dg-error "const" }
 }
diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net8.C b/gcc/testsuite/g++.old-deja/g++.mike/net8.C
index d1f6864..6c2cd7f 100644
--- a/gcc/testsuite/g++.old-deja/g++.mike/net8.C
+++ b/gcc/testsuite/g++.old-deja/g++.mike/net8.C
@@ -11,14 +11,14 @@ public:
   int bar;
 };
 
-void func(Base&);			// { dg-message "passing argument 1" } 
+void func(Base&);			// { dg-message "argument 1" }
 
 void func2(const Derived& d) {
-  func(d);				// { dg-error "invalid initialization" }
+  func(d);				// { dg-error "" }
 }
 
 void
-foo (int& a)				// { dg-message "in passing argument 1" } 
+foo (int& a)				// { dg-message "argument 1" }
 {
 }
 
@@ -27,6 +27,6 @@ int main ()
   int b;
   const int*const a = &b;
   *a = 10;				// { dg-error "read-only location" }
-  foo (*a);				// { dg-error "invalid initialization" }
+  foo (*a);				// { dg-error "qualifiers" }
   return 0;
 }
diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p1989.C b/gcc/testsuite/g++.old-deja/g++.mike/p1989.C
index 05b8b1c..376d1f5 100644
--- a/gcc/testsuite/g++.old-deja/g++.mike/p1989.C
+++ b/gcc/testsuite/g++.old-deja/g++.mike/p1989.C
@@ -196,7 +196,7 @@ Pix
 List_DLS<T>::search(const T& item) const
 {
     for (Pix x=this->first(); 0 != x; this->next(x)) {
-	if (item == this->operator()(x)) // { dg-error "match" } const subversion
+	if (item == this->operator()(x)) // { dg-error "qualifiers" } const subversion
 	    return x;
     }
     return 0;
@@ -485,8 +485,8 @@ class STRLIdentifier {
     char buf[10];
 };
 
-extern int operator==(vertex<STRLIdentifier*>&, vertex<STRLIdentifier*>&); // { dg-message "note" } const subversion
-extern int operator==(STRLIdentifier&, STRLIdentifier&); // { dg-message "note" } fn ref in err msg
+extern int operator==(vertex<STRLIdentifier*>&, vertex<STRLIdentifier*>&); // { dg-message "argument 1" } const subversion
+extern int operator==(STRLIdentifier&, STRLIdentifier&);
 
 extern int x(List_DLSp<STRLIdentifier *>);
 
diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p2431.C b/gcc/testsuite/g++.old-deja/g++.mike/p2431.C
index bc272af..8a7ede6 100644
--- a/gcc/testsuite/g++.old-deja/g++.mike/p2431.C
+++ b/gcc/testsuite/g++.old-deja/g++.mike/p2431.C
@@ -18,6 +18,6 @@ class C
 	C()
 	{
 		B	b;
-		A a = b;// { dg-error "match" } 
+		A a = b;// { dg-error "rvalue" }
 	}
 };
diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p438.C b/gcc/testsuite/g++.old-deja/g++.mike/p438.C
index 1975ebf..18f9267 100644
--- a/gcc/testsuite/g++.old-deja/g++.mike/p438.C
+++ b/gcc/testsuite/g++.old-deja/g++.mike/p438.C
@@ -19,5 +19,5 @@ void C::test() const
 {
    D d;
 
-   d.a(*this);	// { dg-error "match" } *this is const, so should get error
+   d.a(*this);	// { dg-error "const" } *this is const, so should get error
 }
diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p701.C b/gcc/testsuite/g++.old-deja/g++.mike/p701.C
index 8e9a345..99ef1f4 100644
--- a/gcc/testsuite/g++.old-deja/g++.mike/p701.C
+++ b/gcc/testsuite/g++.old-deja/g++.mike/p701.C
@@ -7,7 +7,7 @@ extern "C"
 }
 
 
-void Munge(int& x) 	// { dg-message "passing argument 1" }
+void Munge(int& x) 	// { dg-message "argument 1" }
 {
    x = 2;
 }
@@ -24,7 +24,7 @@ class A
 void
 A::Safe() const 
 {
-   Munge(i);	        // { dg-error "invalid initialization" }
+   Munge(i);	        // { dg-error "const" }
 }
 
 int main()
diff --git a/gcc/testsuite/g++.old-deja/g++.other/crash24.C b/gcc/testsuite/g++.old-deja/g++.other/crash24.C
index d2581f0..a4d655a 100644
--- a/gcc/testsuite/g++.old-deja/g++.other/crash24.C
+++ b/gcc/testsuite/g++.old-deja/g++.other/crash24.C
@@ -12,7 +12,7 @@ class foo {
 static void iteratorTest(const foo &x)
 {
    foo::const_iterator i = x.begin();		// { dg-error "incomplete type" "incomplete type" } 
-   // { dg-error "no matching|const foo" "no matching" { target *-*-* } 14 }
+   // { dg-error "const foo" "" { target *-*-* } 14 }
    for (; i; ++i)
       *i;
 }
diff --git a/gcc/testsuite/g++.old-deja/g++.other/volatile1.C b/gcc/testsuite/g++.old-deja/g++.other/volatile1.C
index 5c58728..7d818fb 100644
--- a/gcc/testsuite/g++.old-deja/g++.other/volatile1.C
+++ b/gcc/testsuite/g++.old-deja/g++.other/volatile1.C
@@ -15,6 +15,6 @@ ret_v_f_class()
 int main(void)
 {
   volatile f_class vf;
-  0 ? ret_v_f_class() : vf;	// { dg-error "match" } can't copy volatile lvalue
+  0 ? ret_v_f_class() : vf;	// { dg-error "volatile" } can't copy volatile lvalue
   return 0;
 }
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/auto_ptr.C b/gcc/testsuite/g++.old-deja/g++.pt/auto_ptr.C
index 08af5fb..4a363a2 100644
--- a/gcc/testsuite/g++.old-deja/g++.pt/auto_ptr.C
+++ b/gcc/testsuite/g++.old-deja/g++.pt/auto_ptr.C
@@ -11,7 +11,7 @@ template<typename X> struct auto_ptr {
    explicit auto_ptr(X* p =0) throw() : px(p) {}
    auto_ptr(auto_ptr& r) throw() : px(r.release()) {} // { dg-message "note" } candidate
    template<typename Y>
-      auto_ptr(auto_ptr<Y>& r) throw() : px(r.release()) {}// { dg-message "note" } candidate
+      auto_ptr(auto_ptr<Y>& r) throw() : px(r.release()) {}
 
    auto_ptr& operator=(auto_ptr& r) throw() { 
       reset(r.release()); 
@@ -30,7 +30,7 @@ template<typename X> struct auto_ptr {
    X* release() throw() { X* p=px; px=0; return p; }
    void reset(X* p=0) throw() { if (px != p) delete px, px = p; }
 
-   auto_ptr(auto_ptr_ref<X> r) throw() : px(r.py) {} // { dg-message "note" } 
+   auto_ptr(auto_ptr_ref<X> r) throw() : px(r.py) {}
    template<typename Y> operator auto_ptr_ref<Y>() throw() {
       return auto_ptr_ref<Y>(release()); 
    }
@@ -51,5 +51,5 @@ int main() {
     auto_ptr<Derived> y(f());
     x = y;
     g(f());
-    h(f());			// { dg-error "match" "match" } no usable copy ctor
+    h(f());			// { dg-error "rvalue" "" } no usable copy ctor
 }
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/t05.C b/gcc/testsuite/g++.old-deja/g++.pt/t05.C
index 71fe958..f1eda15 100644
--- a/gcc/testsuite/g++.old-deja/g++.pt/t05.C
+++ b/gcc/testsuite/g++.old-deja/g++.pt/t05.C
@@ -1,9 +1,9 @@
 // { dg-do assemble  }
 
-template <class A> class B {    // { dg-message "note" } 
+template <class A> class B {
   A a;                          
  public:
   B(A&aa);			// { dg-message "note" }
   ~B();
 };
-static B<int> b_int (3);	// { dg-error "no matching function" } 
+static B<int> b_int (3);	// { dg-error "no match|rvalue" }
diff --git a/libstdc++-v3/testsuite/20_util/forward/1_neg.cc b/libstdc++-v3/testsuite/20_util/forward/1_neg.cc
index 06f7bcb..f34fc8a 100644
--- a/libstdc++-v3/testsuite/20_util/forward/1_neg.cc
+++ b/libstdc++-v3/testsuite/20_util/forward/1_neg.cc
@@ -28,7 +28,7 @@ template<class T, class A1, class A2>
   factory(A1&& a1, A2&& a2)
   {
     return std::shared_ptr<T>(new T(std::forward<A1>(a1),
-				    std::forward<A2>(a2))); // { dg-error "no matching function" }
+				    std::forward<A2>(a2))); // { dg-error "rvalue" }
   }
 
 struct A

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]