expr.c (pop_type_0): Call `concat' rather than building the string manually.
authorKaveh R. Ghazi <ghazi@caip.rutgers.edu>
Wed, 28 Mar 2001 19:31:43 +0000 (19:31 +0000)
committerKaveh Ghazi <ghazi@gcc.gnu.org>
Wed, 28 Mar 2001 19:31:43 +0000 (19:31 +0000)
* expr.c (pop_type_0): Call `concat' rather than building the
string manually.
(pop_type): Add format specifier in call to `error'.

* parse.y (patch_method_invocation): Avoid casting away
const-ness.

From-SVN: r40940

gcc/java/ChangeLog
gcc/java/expr.c
gcc/java/parse.y

index abfc482..e9f24df 100644 (file)
@@ -1,3 +1,12 @@
+2001-03-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * expr.c (pop_type_0): Call `concat' rather than building the
+       string manually.
+       (pop_type): Add format specifier in call to `error'.
+
+       * parse.y (patch_method_invocation): Avoid casting away
+       const-ness.
+
 2001-03-21  Alexandre Petit-Bianco  <apbianco@redhat.com>
 
        * parse.y (qualify_ambiguous_name): Broaden `length'
index 072be6d..2ea6a81 100644 (file)
@@ -355,24 +355,11 @@ pop_type_0 (type, messagep)
       else if (CLASS_INTERFACE (TYPE_NAME (TREE_TYPE (type))))
        return object_ptr_type_node;
     }
-  {
-    const char *str1 = "expected type '";
-    const char *str3 = "' but stack contains '";
-    const char *str5 = "'";
-    int len1 = strlen (str1);
-    int len2 = strlen (lang_printable_name (type, 0));
-    int len3 = strlen (str3);
-    int len4 = strlen (lang_printable_name (t, 0));
-    int len5 = strlen (str5);
-    char *msg = xmalloc (len1 + len2 + len3 + len4 + len5 + 1);
-    *messagep = msg;
-    strcpy (msg, str1);  msg += len1;
-    strcpy (msg, lang_printable_name (type, 0));  msg += len2;
-    strcpy (msg, str3);  msg += len3;
-    strcpy (msg, lang_printable_name (t, 0));  msg += len4;
-    strcpy (msg, str5);
-    return type;
-  }
+
+  *messagep = concat ("expected type '", lang_printable_name (type, 0),
+                     "' but stack contains '", lang_printable_name (t, 0),
+                     "'", NULL);
+  return type;
 }
 
 /* Pop a type from the type stack.
@@ -387,7 +374,7 @@ pop_type (type)
   type = pop_type_0 (type, &message);
   if (message != NULL)
     {
-      error (message);
+      error ("%s", message);
       free (message);
     }
   return type;
index 04c9e90..6df483e 100644 (file)
@@ -9963,12 +9963,15 @@ patch_method_invocation (patch, primary, where, from_super,
       /* Calls to clone() on array types are permitted as a special-case. */
       && !is_array_clone_call)
     {
-      char *fct_name = (char *) IDENTIFIER_POINTER (DECL_NAME (list));
-      char *access = java_accstring_lookup (get_access_flags_from_decl (list));
-      char *klass = (char *) IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (DECL_CONTEXT (list))));
-      char *refklass = (char *) IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (current_class)));
-      char *what = (char *) (DECL_CONSTRUCTOR_P (list)
-                            ? "constructor" : "method");
+      const char *fct_name = IDENTIFIER_POINTER (DECL_NAME (list));
+      const char *access =
+       java_accstring_lookup (get_access_flags_from_decl (list));
+      const char *klass =
+       IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (DECL_CONTEXT (list))));
+      const char *refklass =
+       IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (current_class)));
+      const char *what = (DECL_CONSTRUCTOR_P (list)
+                         ? "constructor" : "method");
       /* FIXME: WFL yields the wrong message here but I don't know
         what else to use.  */
       parse_error_context (wfl,