https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93710

--- Comment #2 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
With

--- a/gcc/cp/call.c
+++ b/gcc/cp/call.c
@@ -4172,8 +4172,9 @@ build_user_type_conversion_1 (tree totype, tree expr, int
flags,
       if (complain & tf_error)
    {
      auto_diagnostic_group d;
-     error ("conversion from %qH to %qI is ambiguous",
-        fromtype, totype);
+     error_at (EXPR_LOCATION (expr),
+           "conversion from %qH to %qI is ambiguous",
+           fromtype, totype);
      print_z_candidates (location_of (expr), candidates);
    }

we print

93710.C:6:3: error: conversion from ‘long int’ to ‘A’ is ambiguous
    6 |   0L,
      |   ^~
93710.C:1:21: note: candidate: ‘A::A(char*)’
    1 | struct A { A (int); A (char*); int i; };
      |                     ^
93710.C:1:12: note: candidate: ‘A::A(int)’
    1 | struct A { A (int); A (char*); int i; };
      |            ^

which seems much better.

Reply via email to