From: Kaveh R. Ghazi Date: Sat, 11 Dec 1999 19:02:10 +0000 (+0000) Subject: class.c (get_vtable_name): Use a literal format string and VTABLE_NAME_PREFIX macro... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=486837a79c0b0c8ec9bdacacddf62ca20ff90507;p=gcc.git class.c (get_vtable_name): Use a literal format string and VTABLE_NAME_PREFIX macro instead of... * class.c (get_vtable_name): Use a literal format string and VTABLE_NAME_PREFIX macro instead of VTABLE_NAME_FORMAT. (prepare_fresh_vtable): Likewise. * cp-tree.h (VTABLE_NAME_PREFIX): Define this instead of VTABLE_NAME_FORMAT. * decl.c (make_rtl_for_local_static): Remove unused variable `type'. * init.c (build_vec_init): Initialize variable `try_body'. * lex.c (yyerror): Don't call a variadic function with a non-literal format string. * optimize.c (optimize_function): Call memset, not bzero. * pt.c (for_each_template_parm_r): Add static prototype. From-SVN: r30868 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index bde1126e3eb..640a164f768 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,23 @@ +1999-12-11 Kaveh R. Ghazi + + * class.c (get_vtable_name): Use a literal format string and + VTABLE_NAME_PREFIX macro instead of VTABLE_NAME_FORMAT. + (prepare_fresh_vtable): Likewise. + + * cp-tree.h (VTABLE_NAME_PREFIX): Define this instead of + VTABLE_NAME_FORMAT. + + * decl.c (make_rtl_for_local_static): Remove unused variable `type'. + + * init.c (build_vec_init): Initialize variable `try_body'. + + * lex.c (yyerror): Don't call a variadic function with a + non-literal format string. + + * optimize.c (optimize_function): Call memset, not bzero. + + * pt.c (for_each_template_parm_r): Add static prototype. + 11999-12-09 Andreas Jaeger * except.c (expand_throw): Add static attribute to match diff --git a/gcc/cp/class.c b/gcc/cp/class.c index a916123ed9b..7d2965df616 100644 --- a/gcc/cp/class.c +++ b/gcc/cp/class.c @@ -583,7 +583,7 @@ get_vtable_name (type) tree type; { tree type_id = build_typename_overload (type); - char *buf = (char *) alloca (strlen (VTABLE_NAME_FORMAT) + char *buf = (char *) alloca (strlen (VTABLE_NAME_PREFIX) + IDENTIFIER_LENGTH (type_id) + 2); const char *ptr = IDENTIFIER_POINTER (type_id); int i; @@ -596,7 +596,7 @@ get_vtable_name (type) while (ptr[i] >= '0' && ptr[i] <= '9') i += 1; #endif - sprintf (buf, VTABLE_NAME_FORMAT, ptr+i); + sprintf (buf, "%s%s", VTABLE_NAME_PREFIX, ptr+i); return get_identifier (buf); } @@ -796,8 +796,8 @@ prepare_fresh_vtable (binfo, for_type) sprintf (buf1, "%s%c%s", TYPE_ASSEMBLER_NAME_STRING (for_type), joiner, buf2); - buf = (char *) alloca (strlen (VTABLE_NAME_FORMAT) + strlen (buf1) + 1); - sprintf (buf, VTABLE_NAME_FORMAT, buf1); + buf = (char *) alloca (strlen (VTABLE_NAME_PREFIX) + strlen (buf1) + 1); + sprintf (buf, "%s%s", VTABLE_NAME_PREFIX, buf1); name = get_identifier (buf); /* If this name doesn't clash, then we can use it, otherwise @@ -827,9 +827,9 @@ prepare_fresh_vtable (binfo, for_type) sprintf (buf1, "%s%c%s%c%d", TYPE_ASSEMBLER_NAME_STRING (basetype), joiner, buf2, joiner, j); - buf = (char *) alloca (strlen (VTABLE_NAME_FORMAT) + buf = (char *) alloca (strlen (VTABLE_NAME_PREFIX) + strlen (buf1) + 1); - sprintf (buf, VTABLE_NAME_FORMAT, buf1); + sprintf (buf, "%s%s", VTABLE_NAME_PREFIX, buf1); name = get_identifier (buf); /* If this name doesn't clash, then we can use it, diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h index 7410a821420..90f652fae25 100644 --- a/gcc/cp/cp-tree.h +++ b/gcc/cp/cp-tree.h @@ -2922,7 +2922,7 @@ extern tree global_base_init_list; #define AUTO_TEMP_NAME "_$tmp_" #define AUTO_TEMP_FORMAT "_$tmp_%d" #define VTABLE_BASE "$vb" -#define VTABLE_NAME_FORMAT (flag_vtable_thunks ? "__vt_%s" : "_vt$%s") +#define VTABLE_NAME_PREFIX (flag_vtable_thunks ? "__vt_" : "_vt$") #define VFIELD_BASE "$vf" #define VFIELD_NAME "_vptr$" #define VFIELD_NAME_FORMAT "_vptr$%s" @@ -2944,7 +2944,7 @@ extern tree global_base_init_list; #define AUTO_TEMP_NAME "_.tmp_" #define AUTO_TEMP_FORMAT "_.tmp_%d" #define VTABLE_BASE ".vb" -#define VTABLE_NAME_FORMAT (flag_vtable_thunks ? "__vt_%s" : "_vt.%s") +#define VTABLE_NAME_PREFIX (flag_vtable_thunks ? "__vt_" : "_vt.") #define VFIELD_BASE ".vf" #define VFIELD_NAME "_vptr." #define VFIELD_NAME_FORMAT "_vptr.%s" @@ -2973,7 +2973,7 @@ extern tree global_base_init_list; #define AUTO_TEMP_FORMAT "__tmp_%d" #define VTABLE_BASE "__vtb" #define VTABLE_NAME "__vt_" -#define VTABLE_NAME_FORMAT (flag_vtable_thunks ? "__vt_%s" : "_vt_%s") +#define VTABLE_NAME_PREFIX (flag_vtable_thunks ? "__vt_" : "_vt_") #define VTABLE_NAME_P(ID_NODE) \ (!strncmp (IDENTIFIER_POINTER (ID_NODE), VTABLE_NAME, \ sizeof (VTABLE_NAME) - 1)) diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c index b6a62ea4834..98498744ae5 100644 --- a/gcc/cp/decl.c +++ b/gcc/cp/decl.c @@ -7381,7 +7381,6 @@ void make_rtl_for_local_static (decl) tree decl; { - tree type = TREE_TYPE (decl); const char *asmspec = NULL; /* If we inlined this variable, we could see it's declaration diff --git a/gcc/cp/init.c b/gcc/cp/init.c index b0be498950b..e5b9d7848ad 100644 --- a/gcc/cp/init.c +++ b/gcc/cp/init.c @@ -2640,7 +2640,7 @@ build_vec_init (decl, base, maxindex, init, from_array) tree compound_stmt; int destroy_temps; tree try_block = NULL_TREE; - tree try_body; + tree try_body = NULL_TREE; int num_initialized_elts = 0; maxindex = cp_convert (ptrdiff_type_node, maxindex); diff --git a/gcc/cp/lex.c b/gcc/cp/lex.c index 30292a6f6bb..8d212ce97e4 100644 --- a/gcc/cp/lex.c +++ b/gcc/cp/lex.c @@ -2936,29 +2936,26 @@ yyerror (string) const char *string; { extern int end_of_file; - char buf[200]; - - strcpy (buf, string); /* We can't print string and character constants well because the token_buffer contains the result of processing escapes. */ if (end_of_file) - strcat (buf, input_redirected () - ? " at end of saved text" - : " at end of input"); + { + if (input_redirected ()) + error ("%s at end of saved text", string); + else + error ("%s at end of input", string); + } else if (token_buffer[0] == 0) - strcat (buf, " at null character"); + error ("%s at null character", string); else if (token_buffer[0] == '"') - strcat (buf, " before string constant"); + error ("%s before string constant", string); else if (token_buffer[0] == '\'') - strcat (buf, " before character constant"); + error ("%s before character constant", string); else if (!ISGRAPH ((unsigned char)token_buffer[0])) - sprintf (buf + strlen (buf), " before character 0%o", - (unsigned char) token_buffer[0]); + error ("%s before character 0%o", string, (unsigned char) token_buffer[0]); else - strcat (buf, " before `%s'"); - - error (buf, token_buffer); + error ("%s before `%s'", string, token_buffer); } /* Value is 1 (or 2) if we should try to make the next identifier look like diff --git a/gcc/cp/optimize.c b/gcc/cp/optimize.c index dbbda797bcc..374e90b6e63 100644 --- a/gcc/cp/optimize.c +++ b/gcc/cp/optimize.c @@ -695,7 +695,7 @@ optimize_function (fn) struct saved_scope *s; /* Clear out ID. */ - bzero (&id, sizeof (id)); + memset (&id, 0, sizeof (id)); /* Don't allow recursion into FN. */ VARRAY_TREE_INIT (id.fns, 32, "fns"); diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index ed9e8485ff7..522045685dd 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -157,6 +157,7 @@ static tree determine_specialization PROTO((tree, tree, tree *, int)); static int template_args_equal PROTO((tree, tree)); static void print_template_context PROTO((int)); static void tsubst_default_arguments PROTO((tree)); +static tree for_each_template_parm_r PROTO((tree *, int *, void *)); /* Called once to initialize pt.c. */