Convert diagnostics to use quoting flag q 1/n
authorgdr <gdr@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 3 Oct 2004 23:02:30 +0000 (23:02 +0000)
committergdr <gdr@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 3 Oct 2004 23:02:30 +0000 (23:02 +0000)
        * error.c (locate_error): Ignore quoting flag q.
        * call.c (build_user_type_conversion_1,
        build_operator_new_call,
        build_object_call, op_error, build_conditional_expr,
        build_new_op, build_op_delete_call, enforce_access,
        convert_like_real, convert_arg_to_ellipsis, build_x_va_arg,
        convert_default_arg, build_over_call, build_new_method_call,
        joust, perform_implicit_conversion, initialize_reference): Use
        the
        quoting flag q.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@88465 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/cp/ChangeLog
gcc/cp/call.c
gcc/cp/error.c

index d93e152..25057cf 100644 (file)
@@ -1,3 +1,15 @@
+2004-10-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>
+
+       Convert diagnostics to use quoting flag q 1/n
+       * error.c (locate_error): Ignore quoting flag q.
+       * call.c (build_user_type_conversion_1, build_operator_new_call,
+       build_object_call, op_error, build_conditional_expr,
+       build_new_op, build_op_delete_call, enforce_access,
+       convert_like_real, convert_arg_to_ellipsis, build_x_va_arg,
+       convert_default_arg, build_over_call, build_new_method_call,
+       joust, perform_implicit_conversion, initialize_reference): Use the
+       quoting flag q.
+
 2004-10-03  Andrew Pinski  <pinskia@physics.uc.edu>
 
        PR c++/17797
index f61fa2a..bd607ab 100644 (file)
@@ -2600,7 +2600,7 @@ build_user_type_conversion_1 (tree totype, tree expr, int flags)
     {
       if (flags & LOOKUP_COMPLAIN)
        {
-         error ("conversion from `%T' to `%T' is ambiguous",
+         error ("conversion from %qT to %qT is ambiguous",
                    fromtype, totype);
          print_z_candidates (candidates);
        }
@@ -2754,10 +2754,10 @@ build_new_function_call (tree fn, tree args)
       if (TREE_CODE (fn) == TEMPLATE_ID_EXPR)
        fn = TREE_OPERAND (fn, 0);
       if (!any_viable_p)
-       error ("no matching function for call to `%D(%A)'",
+       error ("no matching function for call to %<%D(%A)%>",
               DECL_NAME (OVL_CURRENT (fn)), args);
       else
-       error ("call of overloaded `%D(%A)' is ambiguous",
+       error ("call of overloaded %<%D(%A)%> is ambiguous",
               DECL_NAME (OVL_CURRENT (fn)), args);
       if (candidates)
        print_z_candidates (candidates);
@@ -2812,10 +2812,10 @@ build_operator_new_call (tree fnname, tree args, tree *size, tree *cookie_size)
   if (!cand)
     {
       if (!any_viable_p)
-       error ("no matching function for call to `%D(%A)'",
+       error ("no matching function for call to %<%D(%A)%>",
               DECL_NAME (OVL_CURRENT (fns)), args);
       else
-       error ("call of overloaded `%D(%A)' is ambiguous",
+       error ("call of overloaded %<%D(%A)%> is ambiguous",
               DECL_NAME (OVL_CURRENT (fns)), args);
       if (candidates)
        print_z_candidates (candidates);
@@ -2952,7 +2952,7 @@ build_object_call (tree obj, tree args)
   candidates = splice_viable (candidates, pedantic, &any_viable_p);
   if (!any_viable_p)
     {
-      error ("no match for call to `(%T) (%A)'", TREE_TYPE (obj), args);
+      error ("no match for call to %<(%T) (%A)%>", TREE_TYPE (obj), args);
       print_z_candidates (candidates);
       result = error_mark_node;
     }
@@ -2961,7 +2961,7 @@ build_object_call (tree obj, tree args)
       cand = tourney (candidates);
       if (cand == 0)
        {
-         error ("call of `(%T) (%A)' is ambiguous", TREE_TYPE (obj), args);
+         error ("call of %<(%T) (%A)%> is ambiguous", TREE_TYPE (obj), args);
          print_z_candidates (candidates);
          result = error_mark_node;
        }
@@ -2998,30 +2998,30 @@ op_error (enum tree_code code, enum tree_code code2,
   switch (code)
     {
     case COND_EXPR:
-      error ("%s for ternary 'operator?:' in '%E ? %E : %E'",
+      error ("%s for ternary %<operator?:%> in %<%E ? %E : %E%>",
              problem, arg1, arg2, arg3);
       break;
       
     case POSTINCREMENT_EXPR:
     case POSTDECREMENT_EXPR:
-      error ("%s for 'operator%s' in '%E%s'", problem, opname, arg1, opname);
+      error ("%s for %<operator%s%> in %<%E%s%>", problem, opname, arg1, opname);
       break;
       
     case ARRAY_REF:
-      error ("%s for 'operator[]' in '%E[%E]'", problem, arg1, arg2);
+      error ("%s for %<operator[]%> in %<%E[%E]%>", problem, arg1, arg2);
       break;
 
     case REALPART_EXPR:
     case IMAGPART_EXPR:
-      error ("%s for '%s' in '%s %E'", problem, opname, opname, arg1);
+      error ("%s for %qs in %<%s %E%>", problem, opname, opname, arg1);
       break;
       
     default:
       if (arg2)
-       error ("%s for 'operator%s' in '%E %s %E'",
+       error ("%s for %<operator%s%> in %<%E %s %E%>",
                problem, opname, arg1, opname, arg2);
       else
-       error ("%s for 'operator%s' in '%s%E'",
+       error ("%s for %<operator%s%> in %<%s%E%>",
                problem, opname, opname, arg1);
       break;
     }
@@ -3188,7 +3188,7 @@ build_conditional_expr (tree arg1, tree arg2, tree arg3)
        result_type = void_type_node;
       else
        {
-         error ("`%E' has type `void' and is not a throw-expression",
+         error ("%qE has type %<void%> and is not a throw-expression",
                    VOID_TYPE_P (arg2_type) ? arg2 : arg3);
          return error_mark_node;
        }
@@ -3693,9 +3693,10 @@ build_new_op (enum tree_code code, int flags, tree arg1, tree arg2, tree arg3,
          /* Look for an `operator++ (int)'.  If they didn't have
             one, then we fall back to the old way of doing things.  */
          if (flags & LOOKUP_COMPLAIN)
-           pedwarn ("no `%D(int)' declared for postfix `%s', trying prefix operator instead",
-                       fnname, 
-                       operator_name_info[code].name);
+           pedwarn ("no %<%D(int)%> declared for postfix %qs, "
+                     "trying prefix operator instead",
+                     fnname, 
+                     operator_name_info[code].name);
          if (code == POSTINCREMENT_EXPR)
            code = PREINCREMENT_EXPR;
          else
@@ -3745,9 +3746,9 @@ build_new_op (enum tree_code code, int flags, tree arg1, tree arg2, tree arg3,
              && candidates->next
              && ! candidates->next->next)
            {
-             warning ("using synthesized `%#D' for copy assignment",
+             warning ("using synthesized %q#D for copy assignment",
                          cand->fn);
-             cp_warning_at ("  where cfront would use `%#D'",
+             cp_warning_at ("  where cfront would use %q#D",
                             cand == candidates
                             ? candidates->next->fn
                             : candidates->fn);
@@ -3779,8 +3780,8 @@ build_new_op (enum tree_code code, int flags, tree arg1, tree arg2, tree arg3,
                  && (TYPE_MAIN_VARIANT (TREE_TYPE (arg1))
                      != TYPE_MAIN_VARIANT (TREE_TYPE (arg2))))
                {
-                 warning ("comparison between `%#T' and `%#T'", 
-                             TREE_TYPE (arg1), TREE_TYPE (arg2));
+                 warning ("comparison between %q#T and %q#T", 
+                           TREE_TYPE (arg1), TREE_TYPE (arg2));
                }
              break;
            default:
@@ -4036,7 +4037,7 @@ build_op_delete_call (enum tree_code code, tree addr, tree size,
   if (placement)
     return NULL_TREE;
 
-  error ("no suitable `operator %s' for `%T'",
+  error ("no suitable %<operator %s> for %qT",
         operator_name_info[(int)code].name, type);
   return error_mark_node;
 }
@@ -4053,11 +4054,11 @@ enforce_access (tree basetype_path, tree decl)
   if (!accessible_p (basetype_path, decl))
     {
       if (TREE_PRIVATE (decl))
-       cp_error_at ("`%+#D' is private", decl);
+       cp_error_at ("%q+#D is private", decl);
       else if (TREE_PROTECTED (decl))
-       cp_error_at ("`%+#D' is protected", decl);
+       cp_error_at ("%q+#D is protected", decl);
       else
-       cp_error_at ("`%+#D' is inaccessible", decl);
+       cp_error_at ("%q+#D is inaccessible", decl);
       error ("within this context");
       return false;
     }
@@ -4141,9 +4142,9 @@ convert_like_real (conversion *convs, tree expr, tree fn, int argnum,
          else if (t->kind == ck_identity)
            break;
        }
-      pedwarn ("invalid conversion from `%T' to `%T'", TREE_TYPE (expr), totype);
+      pedwarn ("invalid conversion from %qT to %qT", TREE_TYPE (expr), totype);
       if (fn)
-       pedwarn ("  initializing argument %P of `%D'", argnum, fn);
+       pedwarn ("  initializing argument %P of %qD", argnum, fn);
       return cp_convert (totype, expr);
     }
   
@@ -4203,11 +4204,11 @@ convert_like_real (conversion *convs, tree expr, tree fn, int argnum,
              {
                if (fn)
                  diagnostic_fn 
-                   ("  initializing argument %P of `%D' from result of `%D'",
+                   ("  initializing argument %P of %qD from result of %qD",
                     argnum, fn, convfn);
                else
                 diagnostic_fn 
-                  ("  initializing temporary from result of `%D'",  convfn);
+                  ("  initializing temporary from result of %qD",  convfn);
              }
            expr = build_cplus_new (totype, expr);
          }
@@ -4267,7 +4268,7 @@ convert_like_real (conversion *convs, tree expr, tree fn, int argnum,
       expr = build_temp (expr, totype, LOOKUP_NORMAL|LOOKUP_ONLYCONVERTING,
                         &diagnostic_fn);
       if (diagnostic_fn && fn)
-       diagnostic_fn ("  initializing argument %P of `%D'", argnum, fn);
+       diagnostic_fn ("  initializing argument %P of %qD", argnum, fn);
       return build_cplus_new (totype, expr);
 
     case ck_ref_bind:
@@ -4286,13 +4287,13 @@ convert_like_real (conversion *convs, tree expr, tree fn, int argnum,
                cp_lvalue_kind lvalue = real_lvalue_p (expr);
                
                if (lvalue & clk_bitfield)
-                 error ("cannot bind bitfield `%E' to `%T'",
+                 error ("cannot bind bitfield %qE to %qT",
                         expr, ref_type);
                else if (lvalue & clk_packed)
-                 error ("cannot bind packed field `%E' to `%T'",
+                 error ("cannot bind packed field %qE to %qT",
                         expr, ref_type);
                else
-                 error ("cannot bind rvalue `%E' to `%T'", expr, ref_type);
+                 error ("cannot bind rvalue %qE to %qT", expr, ref_type);
                return error_mark_node;
              }
            expr = build_target_expr_with_type (expr, type);
@@ -4377,7 +4378,7 @@ convert_arg_to_ellipsis (tree arg)
         there is no need to emit a warning, since the expression won't be 
         evaluated. We keep the builtin_trap just as a safety check.  */
       if (!skip_evaluation)
-       warning ("cannot pass objects of non-POD type `%#T' through `...'; "
+       warning ("cannot pass objects of non-POD type %q#T through %<...%>; "
                 "call will abort at runtime", TREE_TYPE (arg));
       arg = call_builtin_trap ();
       arg = build2 (COMPOUND_EXPR, integer_type_node, arg,
@@ -4403,9 +4404,8 @@ build_x_va_arg (tree expr, tree type)
   if (! pod_type_p (type))
     {
       /* Undefined behavior [expr.call] 5.2.2/7.  */
-      warning ("cannot receive objects of non-POD type `%#T' through `...'; \
-call will abort at runtime",
-              type);
+      warning ("cannot receive objects of non-POD type %q#T' through %<...%>; "
+               "call will abort at runtime", type);
       expr = convert (build_pointer_type (type), null_node);
       expr = build2 (COMPOUND_EXPR, TREE_TYPE (expr),
                     call_builtin_trap (), expr);
@@ -4447,7 +4447,7 @@ convert_default_arg (tree type, tree arg, tree fn, int parmnum)
      conversion cannot be performed.  */
   if (TREE_CODE (arg) == DEFAULT_ARG)
     {
-      error ("the default argument for parameter %d of `%D' has "
+      error ("the default argument for parameter %d of %qD has "
             "not yet been parsed",
             parmnum, fn);
       return error_mark_node;
@@ -4671,7 +4671,7 @@ build_over_call (struct z_candidate *cand, int flags)
       /* Check that the base class is accessible.  */
       if (!accessible_base_p (TREE_TYPE (argtype), 
                              BINFO_TYPE (cand->conversion_path)))
-       error ("`%T' is not an accessible base of `%T'",
+       error ("%qT is not an accessible base of %qT",
               BINFO_TYPE (cand->conversion_path),
               TREE_TYPE (argtype));
       /* If fn was found by a using declaration, the conversion path
@@ -4921,7 +4921,7 @@ build_java_interface_fn_ref (tree fn, tree instance)
   if (!iface_ref || TREE_CODE (iface_ref) != VAR_DECL
       || DECL_CONTEXT (iface_ref) != iface)
     {
-      error ("could not find class$ field in java interface type `%T'", 
+      error ("could not find class$ field in java interface type %qT", 
                iface);
       return error_mark_node;
     }
@@ -5183,7 +5183,7 @@ build_new_method_call (tree instance, tree fns, tree args,
 
   if (!BASELINK_P (fns))
     {
-      error ("call to non-function `%D'", fns);
+      error ("call to non-function %qD", fns);
       return error_mark_node;
     }
 
@@ -5208,7 +5208,8 @@ build_new_method_call (tree instance, tree fns, tree args,
   if (! IS_AGGR_TYPE (basetype))
     {
       if ((flags & LOOKUP_COMPLAIN) && basetype != error_mark_node)
-       error ("request for member `%D' in `%E', which is of non-aggregate type `%T'",
+       error ("request for member %qD in %qE, which is of non-aggregate "
+               "type %qT",
               fns, instance, basetype);
 
       return error_mark_node;
@@ -5286,7 +5287,7 @@ build_new_method_call (tree instance, tree fns, tree args,
          bool free_p;
 
          pretty_name = name_as_c_string (name, basetype, &free_p);
-         error ("no matching function for call to `%T::%s(%A)%#V'",
+         error ("no matching function for call to %<%T::%s(%A)%#V%>",
                 basetype, pretty_name, user_args,
                 TREE_TYPE (TREE_TYPE (instance_ptr)));
          if (free_p)
@@ -5304,7 +5305,7 @@ build_new_method_call (tree instance, tree fns, tree args,
          bool free_p;
 
          pretty_name = name_as_c_string (name, basetype, &free_p);
-         error ("call of overloaded `%s(%A)' is ambiguous", pretty_name,
+         error ("call of overloaded %<%s(%A)%> is ambiguous", pretty_name,
                 user_args);
          print_z_candidates (candidates);
          if (free_p)
@@ -5321,14 +5322,14 @@ build_new_method_call (tree instance, tree fns, tree args,
            /* This is not an error, it is runtime undefined
               behavior.  */
            warning ((DECL_CONSTRUCTOR_P (current_function_decl) ? 
-                     "abstract virtual `%#D' called from constructor"
-                     : "abstract virtual `%#D' called from destructor"),
+                     "abstract virtual %q#D called from constructor"
+                     : "abstract virtual %q#D called from destructor"),
                     cand->fn);
          
          if (TREE_CODE (TREE_TYPE (cand->fn)) == METHOD_TYPE
              && is_dummy_object (instance_ptr))
            {
-             error ("cannot call member function `%D' without object", 
+             error ("cannot call member function %qD without object", 
                     cand->fn);
              call = error_mark_node;
            }
@@ -5933,9 +5934,9 @@ joust (struct z_candidate *cand1, struct z_candidate *cand2, bool warn)
 
              if (warn)
                {
-                 warning ("passing `%T' chooses `%T' over `%T'",
+                 warning ("passing %qT chooses %qT over %qT",
                              type, type1, type2);
-                 warning ("  in call to `%D'", w->fn);
+                 warning ("  in call to %qD", w->fn);
                }
              else
                add_warning (w, l);
@@ -5992,8 +5993,8 @@ joust (struct z_candidate *cand1, struct z_candidate *cand2, bool warn)
          tree source = source_type (w->convs[0]);
          if (! DECL_CONSTRUCTOR_P (w->fn))
            source = TREE_TYPE (source);
-         warning ("choosing `%D' over `%D'", w->fn, l->fn);
-         warning ("  for conversion from `%T' to `%T'",
+         warning ("choosing %qD over %qD", w->fn, l->fn);
+         warning ("  for conversion from %qT to %qT",
                   source, w->second_conv->type);
          warning ("  because conversion sequence for the argument is better");
        }
@@ -6257,7 +6258,7 @@ perform_implicit_conversion (tree type, tree expr)
                              LOOKUP_NORMAL);
   if (!conv)
     {
-      error ("could not convert `%E' to `%T'", expr, type);
+      error ("could not convert %qE to %qT", expr, type);
       expr = error_mark_node;
     }
   else
@@ -6382,11 +6383,11 @@ initialize_reference (tree type, tree expr, tree decl, tree *cleanup)
       if (!(TYPE_QUALS (TREE_TYPE (type)) & TYPE_QUAL_CONST)
           && !real_lvalue_p (expr))
         error ("invalid initialization of non-const reference of "
-               "type '%T' from a temporary of type '%T'",
+               "type %qT from a temporary of type %qT",
                type, TREE_TYPE (expr));
       else
         error ("invalid initialization of reference of type "
-              "'%T' from expression of type '%T'", type, 
+              "%qT from expression of type %qT", type, 
               TREE_TYPE (expr));
       return error_mark_node;
     }
index 2bd3dac..b6148fa 100644 (file)
@@ -2332,9 +2332,14 @@ locate_error (const char *msgid, va_list ap)
       plus = 0;
       if (*f == '%')
        {
-         f++;
+          if (*++f == 'q')
+            ++f;                /* ignore quoting flag.  */
+
          if (*f == '+')
-           f++, plus = 1;
+            {
+              ++f;
+              plus = 1;
+            }
          if (*f == '#')
            f++;