aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog12
-rw-r--r--gcc/ada/ChangeLog6
-rw-r--r--gcc/ada/adadecode.c7
-rw-r--r--gcc/ada/misc.c3
-rw-r--r--gcc/config/alpha/vms-cc.c20
-rw-r--r--gcc/config/alpha/vms-ld.c3
-rw-r--r--gcc/config/dsp16xx/dsp16xx.c21
-rw-r--r--gcc/config/mcore/mcore.c6
-rw-r--r--gcc/cppfiles.c6
-rw-r--r--gcc/f/ChangeLog4
-rw-r--r--gcc/f/com.c16
-rw-r--r--gcc/gensupport.c30
-rw-r--r--gcc/vmsdbgout.c12
13 files changed, 49 insertions, 97 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1756328f..d3b958a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,15 @@
+2002-07-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * alpha/vms-cc.c (preprocess_args, main): Use xstrdup and/or
+ concat in lieu of xmalloc/strcpy/memcpy/sprintf.
+ * alpha/vms-ld.c (main): Likewise.
+ * dsp16xx.c (double_reg_to_memory): Likewise.
+ * mcore.c (mcore_expand_prolog): Likewise.
+ * cppfiles.c (read_name_map): Likewise.
+ * gensupport.c (process_rtx, identify_predicable_attribute,
+ alter_test_for_insn): Likewise.
+ * vmsdbgout.c (write_rtnbeg, vmsdbgout_init): Likewise.
+
2002-07-29 Roger Sayle <roger@eyesopen.com>
* builtins.c (expand_builtin): Change the default behavior to
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 159b68e..e7a4732 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,9 @@
+2002-07-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * adadecode.c (ada_demangle): Use xstrdup in lieu of
+ xmalloc/strcpy.
+ * misc.c (gnat_decode_option): Likewise.
+
2002-07-15 Florian Weimer <fw@deneb.enyo.de>
* make.adb (Add_Switch): Make Generic_Position a procedure. The
diff --git a/gcc/ada/adadecode.c b/gcc/ada/adadecode.c
index 54e38be..e3ab46d 100644
--- a/gcc/ada/adadecode.c
+++ b/gcc/ada/adadecode.c
@@ -313,12 +313,7 @@ ada_demangle (coded_name)
const char *coded_name;
{
char ada_name[2048];
- char *result;
__gnat_decode (coded_name, ada_name, 0);
-
- result = (char *) xmalloc (strlen (ada_name) + 1);
- strcpy (result, ada_name);
-
- return result;
+ return xstrdup (ada_name);
}
diff --git a/gcc/ada/misc.c b/gcc/ada/misc.c
index 347636f..60babc4 100644
--- a/gcc/ada/misc.c
+++ b/gcc/ada/misc.c
@@ -227,10 +227,9 @@ gnat_decode_option (argc, argv)
else if (!strncmp (p, "-gant", 5))
{
- char *q = (char *) xmalloc (strlen (p) + 1);
+ char *q = xstrdup (p);
warning ("`-gnat' misspelled as `-gant'");
- strcpy (q, p);
q[2] = 'n', q[3] = 'a';
p = q;
return 1;
diff --git a/gcc/config/alpha/vms-cc.c b/gcc/config/alpha/vms-cc.c
index a171b1c..26c3ae3 100644
--- a/gcc/config/alpha/vms-cc.c
+++ b/gcc/config/alpha/vms-cc.c
@@ -109,16 +109,11 @@ preprocess_args (p_argc, argv)
if (strcmp (argv[i], "-o") == 0)
{
char *buff, *ptr;
- int out_len;
i++;
ptr = to_host_file_spec (argv[i]);
objfilename = xstrdup (ptr);
- out_len = strlen (ptr);
- buff = xmalloc (out_len + 6);
-
- strcpy (buff, "/obj=");
- strcat (buff, ptr);
+ buff = concat ("/obj=", ptr, NULL);
addarg (buff);
}
}
@@ -202,11 +197,8 @@ main (argc, argv)
strncpy (cwdev, cwd, devlen);
cwdev [devlen] = '\0';
- search_dirs = xmalloc (strlen (system_search_dirs) + 1);
- strcpy (search_dirs, system_search_dirs);
-
- defines = xmalloc (strlen (default_defines) + 1);
- strcpy (defines, default_defines);
+ search_dirs = xstrdup (system_search_dirs);
+ defines = xstrdup (default_defines);
addarg ("cc");
preprocess_args (&argc , argv);
@@ -251,7 +243,6 @@ main (argc, argv)
{
/* Assume filename arg */
char buff [256], *ptr;
- int buff_len;
ptr = to_host_file_spec (argv[i]);
arg_len = strlen (ptr);
@@ -263,10 +254,7 @@ main (argc, argv)
else
sprintf (buff, "%s%s", cwd, ptr);
- buff_len = strlen (buff);
- ptr = xmalloc (buff_len + 1);
-
- strcpy (ptr, buff);
+ ptr = xstrdup (buff);
addarg (ptr);
}
}
diff --git a/gcc/config/alpha/vms-ld.c b/gcc/config/alpha/vms-ld.c
index 83ceaf9..e5688d8 100644
--- a/gcc/config/alpha/vms-ld.c
+++ b/gcc/config/alpha/vms-ld.c
@@ -396,8 +396,7 @@ main (argc, argv)
strncpy (cwdev, cwd, devlen);
cwdev [devlen] = '\0';
- search_dirs = xmalloc (strlen (system_search_dirs) + 1);
- strcpy (search_dirs, system_search_dirs);
+ search_dirs = xstrdup (system_search_dirs);
addarg ("link");
diff --git a/gcc/config/dsp16xx/dsp16xx.c b/gcc/config/dsp16xx/dsp16xx.c
index cc1c9d4..cd4b42d 100644
--- a/gcc/config/dsp16xx/dsp16xx.c
+++ b/gcc/config/dsp16xx/dsp16xx.c
@@ -1691,8 +1691,6 @@ double_reg_to_memory (operands)
void
override_options ()
{
- char *tmp;
-
if (chip_name == (char *) 0)
chip_name = DEFAULT_CHIP_NAME;
@@ -1710,21 +1708,10 @@ override_options ()
save_chip_name = xstrdup (chip_name);
- rsect_text = tmp = (char *) xmalloc (strlen(".rsect ") +
- strlen(text_seg_name) + 3);
- sprintf (tmp, ".rsect \"%s\"", text_seg_name);
-
- rsect_data = tmp = (char *) xmalloc (strlen(".rsect ") +
- strlen(data_seg_name) + 3);
- sprintf (tmp, ".rsect \"%s\"", data_seg_name);
-
- rsect_bss = tmp = (char *) xmalloc (strlen(".rsect ") +
- strlen(bss_seg_name) + 3);
- sprintf (tmp, ".rsect \"%s\"", bss_seg_name);
-
- rsect_const = tmp = (char *) xmalloc (strlen(".rsect ") +
- strlen(const_seg_name) + 3);
- sprintf (tmp, ".rsect \"%s\"", const_seg_name);
+ rsect_text = concat (".rsect \"", text_seg_name, "\"", NULL);
+ rsect_data = concat (".rsect \"", data_seg_name, "\"", NULL);
+ rsect_bss = concat (".rsect \"", bss_seg_name, "\"", NULL);
+ rsect_const = concat (".rsect \"", const_seg_name, "\"", NULL);
}
int
diff --git a/gcc/config/mcore/mcore.c b/gcc/config/mcore/mcore.c
index baf0a93..2b7747e 100644
--- a/gcc/config/mcore/mcore.c
+++ b/gcc/config/mcore/mcore.c
@@ -2341,7 +2341,6 @@ mcore_expand_prolog ()
{
/* Emit a symbol for this routine's frame size. */
rtx x;
- int len;
x = DECL_RTL (current_function_decl);
@@ -2356,10 +2355,7 @@ mcore_expand_prolog ()
if (mcore_current_function_name)
free (mcore_current_function_name);
- len = strlen (XSTR (x, 0)) + 1;
- mcore_current_function_name = (char *) xmalloc (len);
-
- memcpy (mcore_current_function_name, XSTR (x, 0), len);
+ mcore_current_function_name = xstrdup (XSTR (x, 0));
ASM_OUTPUT_CG_NODE (asm_out_file, mcore_current_function_name, space_allocated);
diff --git a/gcc/cppfiles.c b/gcc/cppfiles.c
index 903e02d..653b33e 100644
--- a/gcc/cppfiles.c
+++ b/gcc/cppfiles.c
@@ -908,7 +908,6 @@ read_name_map (pfile, dirname)
if (f)
{
int ch;
- int dirlen = strlen (dirname);
while ((ch = getc (f)) != EOF)
{
@@ -931,10 +930,7 @@ read_name_map (pfile, dirname)
ptr->map_to = to;
else
{
- ptr->map_to = xmalloc (dirlen + strlen (to) + 2);
- strcpy (ptr->map_to, dirname);
- ptr->map_to[dirlen] = '/';
- strcpy (ptr->map_to + dirlen + 1, to);
+ ptr->map_to = concat (dirname, "/", to, NULL);
free (to);
}
diff --git a/gcc/f/ChangeLog b/gcc/f/ChangeLog
index f283d5f..7964fa4 100644
--- a/gcc/f/ChangeLog
+++ b/gcc/f/ChangeLog
@@ -1,3 +1,7 @@
+Mon Jul 29 22:05:35 2002 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * com.c (read_name_map): Use concat in lieu of xmalloc/strcpy.
+
2002-07-25 Toon Moene <toon@moene.indiv.nluug.nl>
* news.texi: Document better handling of (no-)alias
diff --git a/gcc/f/com.c b/gcc/f/com.c
index 45c06c7..4757d7e 100644
--- a/gcc/f/com.c
+++ b/gcc/f/com.c
@@ -15312,10 +15312,10 @@ read_name_map (dirname)
dirlen = strlen (dirname);
separator_needed = dirlen != 0 && dirname[dirlen - 1] != '/';
- name = (char *) xmalloc (dirlen + strlen (FILE_NAME_MAP_FILE) + 2);
- strcpy (name, dirname);
- name[dirlen] = '/';
- strcpy (name + dirlen + separator_needed, FILE_NAME_MAP_FILE);
+ if (separator_needed)
+ name = concat (dirname, "/", FILE_NAME_MAP_FILE, NULL);
+ else
+ name = concat (dirname, FILE_NAME_MAP_FILE, NULL);
f = fopen (name, "r");
free (name);
if (!f)
@@ -15345,10 +15345,10 @@ read_name_map (dirname)
ptr->map_to = to;
else
{
- ptr->map_to = xmalloc (dirlen + strlen (to) + 2);
- strcpy (ptr->map_to, dirname);
- ptr->map_to[dirlen] = '/';
- strcpy (ptr->map_to + dirlen + separator_needed, to);
+ if (separator_needed)
+ ptr->map_to = concat (dirname, "/", to, NULL);
+ else
+ ptr->map_to = concat (dirname, to, NULL);
free (to);
}
diff --git a/gcc/gensupport.c b/gcc/gensupport.c
index 5a9ff21..53172dd 100644
--- a/gcc/gensupport.c
+++ b/gcc/gensupport.c
@@ -310,18 +310,7 @@ process_rtx (desc, lineno)
insn condition to create the new split condition. */
split_cond = XSTR (desc, 4);
if (split_cond[0] == '&' && split_cond[1] == '&')
- {
- const char *insn_cond = XSTR (desc, 2);
- size_t insn_cond_len = strlen (insn_cond);
- size_t split_cond_len = strlen (split_cond);
- char *combined;
-
- combined = (char *) xmalloc (insn_cond_len + split_cond_len + 1);
- memcpy (combined, insn_cond, insn_cond_len);
- memcpy (combined + insn_cond_len, split_cond, split_cond_len + 1);
-
- split_cond = combined;
- }
+ split_cond = concat (XSTR (desc, 2), split_cond, NULL);
XSTR (split, 1) = split_cond;
XVEC (split, 2) = XVEC (desc, 5);
XSTR (split, 3) = XSTR (desc, 6);
@@ -441,7 +430,6 @@ identify_predicable_attribute ()
struct queue_elem *elem;
char *p_true, *p_false;
const char *value;
- size_t len;
/* Look for the DEFINE_ATTR for `predicable', which must exist. */
for (elem = define_attr_queue; elem ; elem = elem->next)
@@ -455,10 +443,7 @@ identify_predicable_attribute ()
found:
value = XSTR (elem->data, 1);
- len = strlen (value);
- p_false = (char *) xmalloc (len + 1);
- memcpy (p_false, value, len + 1);
-
+ p_false = xstrdup (value);
p_true = strchr (p_false, ',');
if (p_true == NULL || strchr (++p_true, ',') != NULL)
{
@@ -676,8 +661,6 @@ alter_test_for_insn (ce_elem, insn_elem)
struct queue_elem *ce_elem, *insn_elem;
{
const char *ce_test, *insn_test;
- char *new_test;
- size_t len, ce_len, insn_len;
ce_test = XSTR (ce_elem->data, 1);
insn_test = XSTR (insn_elem->data, 2);
@@ -686,14 +669,7 @@ alter_test_for_insn (ce_elem, insn_elem)
if (!insn_test || *insn_test == '\0')
return ce_test;
- ce_len = strlen (ce_test);
- insn_len = strlen (insn_test);
- len = 1 + ce_len + 1 + 4 + 1 + insn_len + 1 + 1;
- new_test = (char *) xmalloc (len);
-
- sprintf (new_test, "(%s) && (%s)", ce_test, insn_test);
-
- return new_test;
+ return concat ("(", ce_test, ") && (", insn_test, ")", NULL);
}
/* Adjust all of the operand numbers in OLD to match the shift they'll
diff --git a/gcc/vmsdbgout.c b/gcc/vmsdbgout.c
index 45268f5..c4f2fe6 100644
--- a/gcc/vmsdbgout.c
+++ b/gcc/vmsdbgout.c
@@ -793,7 +793,7 @@ write_rtnbeg (rtnnum, dosizeonly)
int dosizeonly;
{
char *rtnname;
- int rtnnamelen, rtnentrynamelen;
+ int rtnnamelen;
char *rtnentryname;
int totsize = 0;
char label[MAX_ARTIFICIAL_LABEL_BYTES];
@@ -802,10 +802,7 @@ write_rtnbeg (rtnnum, dosizeonly)
rtnname = func_table[rtnnum];
rtnnamelen = strlen (rtnname);
- rtnentrynamelen = rtnnamelen + 4; /* "..en" */
- rtnentryname = (char *) xmalloc (rtnentrynamelen + 1);
- strcpy (rtnentryname, rtnname);
- strcat (rtnentryname, "..en");
+ rtnentryname = concat (rtnname, "..en", NULL);
if (!strcmp (rtnname, "main"))
{
@@ -1633,10 +1630,7 @@ vmsdbgout_init (main_input_filename)
else
module_language = DST_K_UNKNOWN;
- module_producer
- = (char *) xmalloc (strlen (language_string) + 1
- + strlen (version_string) + 1);
- sprintf (module_producer, "%s %s", language_string, version_string);
+ module_producer = concat (language_string, " ", version_string, NULL);
ASM_GENERATE_INTERNAL_LABEL (text_end_label, TEXT_END_LABEL, 0);