aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorKaveh R. Ghazi <ghazi@caip.rutgers.edu>2001-03-28 19:31:43 +0000
committerKaveh Ghazi <ghazi@gcc.gnu.org>2001-03-28 19:31:43 +0000
commit80122075e36b7c504e81c22358af690ec7218f48 (patch)
treee23785d4eee463f83a1239e37d4b84c198cf1fcf /gcc
parent3fdefbcc63ada60e2d6bca1dc5581f1cd3716ec1 (diff)
downloadgcc-80122075e36b7c504e81c22358af690ec7218f48.zip
gcc-80122075e36b7c504e81c22358af690ec7218f48.tar.gz
gcc-80122075e36b7c504e81c22358af690ec7218f48.tar.bz2
expr.c (pop_type_0): Call `concat' rather than building the string manually.
* 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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/java/ChangeLog9
-rw-r--r--gcc/java/expr.c25
-rw-r--r--gcc/java/parse.y15
3 files changed, 24 insertions, 25 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index abfc482..e9f24df 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -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'
diff --git a/gcc/java/expr.c b/gcc/java/expr.c
index 072be6d..2ea6a81 100644
--- a/gcc/java/expr.c
+++ b/gcc/java/expr.c
@@ -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;
diff --git a/gcc/java/parse.y b/gcc/java/parse.y
index 04c9e90..6df483e 100644
--- a/gcc/java/parse.y
+++ b/gcc/java/parse.y
@@ -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,