aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKaveh R. Ghazi <ghazi@caip.rutgers.edu>1999-12-11 19:02:10 +0000
committerKaveh Ghazi <ghazi@gcc.gnu.org>1999-12-11 19:02:10 +0000
commit486837a79c0b0c8ec9bdacacddf62ca20ff90507 (patch)
tree35c85a1721664f1de94cff9071d4a49818fff998
parent509c1e9cf24a513738150f39f9359442c13261b8 (diff)
downloadgcc-486837a79c0b0c8ec9bdacacddf62ca20ff90507.zip
gcc-486837a79c0b0c8ec9bdacacddf62ca20ff90507.tar.gz
gcc-486837a79c0b0c8ec9bdacacddf62ca20ff90507.tar.bz2
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
-rw-r--r--gcc/cp/ChangeLog20
-rw-r--r--gcc/cp/class.c12
-rw-r--r--gcc/cp/cp-tree.h6
-rw-r--r--gcc/cp/decl.c1
-rw-r--r--gcc/cp/init.c2
-rw-r--r--gcc/cp/lex.c25
-rw-r--r--gcc/cp/optimize.c2
-rw-r--r--gcc/cp/pt.c1
8 files changed, 43 insertions, 26 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index bde1126..640a164 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,23 @@
+1999-12-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * 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 <aj@suse.de>
* except.c (expand_throw): Add static attribute to match
diff --git a/gcc/cp/class.c b/gcc/cp/class.c
index a916123..7d2965d 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 7410a82..90f652f 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 b6a62ea..9849874 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 b0be498..e5b9d78 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 30292a6..8d212ce 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 dbbda79..374e90b 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 ed9e848..5220456 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. */