diff options
author | Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | 2001-03-28 19:31:43 +0000 |
---|---|---|
committer | Kaveh Ghazi <ghazi@gcc.gnu.org> | 2001-03-28 19:31:43 +0000 |
commit | 80122075e36b7c504e81c22358af690ec7218f48 (patch) | |
tree | e23785d4eee463f83a1239e37d4b84c198cf1fcf /gcc | |
parent | 3fdefbcc63ada60e2d6bca1dc5581f1cd3716ec1 (diff) | |
download | gcc-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/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/java/expr.c | 25 | ||||
-rw-r--r-- | gcc/java/parse.y | 15 |
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, |