Commit 80122075 by Kaveh R. Ghazi Committed by Kaveh Ghazi

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
parent 3fdefbcc
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> 2001-03-21 Alexandre Petit-Bianco <apbianco@redhat.com>
* parse.y (qualify_ambiguous_name): Broaden `length' * parse.y (qualify_ambiguous_name): Broaden `length'
......
...@@ -355,24 +355,11 @@ pop_type_0 (type, messagep) ...@@ -355,24 +355,11 @@ pop_type_0 (type, messagep)
else if (CLASS_INTERFACE (TYPE_NAME (TREE_TYPE (type)))) else if (CLASS_INTERFACE (TYPE_NAME (TREE_TYPE (type))))
return object_ptr_type_node; return object_ptr_type_node;
} }
{
const char *str1 = "expected type '"; *messagep = concat ("expected type '", lang_printable_name (type, 0),
const char *str3 = "' but stack contains '"; "' but stack contains '", lang_printable_name (t, 0),
const char *str5 = "'"; "'", NULL);
int len1 = strlen (str1); return type;
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;
}
} }
/* Pop a type from the type stack. /* Pop a type from the type stack.
...@@ -387,7 +374,7 @@ pop_type (type) ...@@ -387,7 +374,7 @@ pop_type (type)
type = pop_type_0 (type, &message); type = pop_type_0 (type, &message);
if (message != NULL) if (message != NULL)
{ {
error (message); error ("%s", message);
free (message); free (message);
} }
return type; return type;
......
...@@ -9963,12 +9963,15 @@ patch_method_invocation (patch, primary, where, from_super, ...@@ -9963,12 +9963,15 @@ patch_method_invocation (patch, primary, where, from_super,
/* Calls to clone() on array types are permitted as a special-case. */ /* Calls to clone() on array types are permitted as a special-case. */
&& !is_array_clone_call) && !is_array_clone_call)
{ {
char *fct_name = (char *) IDENTIFIER_POINTER (DECL_NAME (list)); const char *fct_name = IDENTIFIER_POINTER (DECL_NAME (list));
char *access = java_accstring_lookup (get_access_flags_from_decl (list)); const char *access =
char *klass = (char *) IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (DECL_CONTEXT (list)))); java_accstring_lookup (get_access_flags_from_decl (list));
char *refklass = (char *) IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (current_class))); const char *klass =
char *what = (char *) (DECL_CONSTRUCTOR_P (list) IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (DECL_CONTEXT (list))));
? "constructor" : "method"); 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 /* FIXME: WFL yields the wrong message here but I don't know
what else to use. */ what else to use. */
parse_error_context (wfl, parse_error_context (wfl,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment