diff options
author | ghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-06-26 00:22:12 +0000 |
---|---|---|
committer | ghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-06-26 00:22:12 +0000 |
commit | 65b198c2b551597a75b1972bf64a18e63862d565 (patch) | |
tree | fb71542f91c1a9dcc70d28cb64513626a2cdcfb8 /gcc | |
parent | 4077bf7a09b962c6c89974ff79086f9608552619 (diff) | |
download | gcc-65b198c2b551597a75b1972bf64a18e63862d565.tar.gz |
* cse.c (approx_reg_cost_1, cse_insn): Fix -Wc++-compat and/or
-Wcast-qual warnings.
* gcc.c (process_command): Likewise.
* genattrtab.c (oballoc): Use XOBNEW.
(oballocvec): Define.
(attr_hash_add_rtx, attr_hash_add_string, attr_string,
get_attr_value, fill_attr, make_length_attrs, gen_attr, gen_insn,
gen_delay, find_attr, gen_insn_reserv, gen_bypass_1): Fix
-Wc++-compat and/or -Wcast-qual warnings.
* genautomata.c (XCREATENODE, XCREATENODEVEC, XCREATENODEVAR,
XCOPYNODE, XCOPYNODEVEC, XCOPYNODEVAR): New.
(gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
gen_presence_absence_set, gen_automaton, gen_regexp_el,
gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
gen_regexp_sequence, gen_reserv, gen_insn_reserv, process_excls,
add_excls, process_presence_absence_names,
process_presence_absence_patterns, add_presence_absence,
process_regexp, add_advance_cycle_insn_decl, get_free_alt_state,
get_free_state, add_arc, get_free_automata_list_el,
form_reserv_sets_list, copy_insn_regexp, transform_1, transform_2,
transform_3, cache_presence, create_ainsns, create_automata,
create_state_ainsn_table, dfa_insn_code_enlarge,
output_trans_func, output_min_issue_delay_func,
output_dead_lock_func, output_reset_func,
output_get_cpu_unit_code_func, output_dfa_start_func,
expand_automata): Likewise.
* genextract.c (gen_insn): Likewise.
* gengtype-lex.l: Likewise.
* gengtype.c (read_input_list, adjust_field_type,
process_gc_options): Likewise.
* genoutput.c (note_constraint): Likewise.
* genpreds.c (mangle, add_constraint): Likewise.
* genrecog.c (process_define_predicate, new_decision,
add_to_sequence): Likewise.
* gensupport.c (record_insn_name): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@137135 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 38 | ||||
-rw-r--r-- | gcc/cse.c | 6 | ||||
-rw-r--r-- | gcc/gcc.c | 5 | ||||
-rw-r--r-- | gcc/genattrtab.c | 31 | ||||
-rw-r--r-- | gcc/genautomata.c | 204 | ||||
-rw-r--r-- | gcc/genextract.c | 2 | ||||
-rw-r--r-- | gcc/gengtype-lex.l | 12 | ||||
-rw-r--r-- | gcc/gengtype.c | 9 | ||||
-rw-r--r-- | gcc/genoutput.c | 2 | ||||
-rw-r--r-- | gcc/genpreds.c | 4 | ||||
-rw-r--r-- | gcc/genrecog.c | 6 | ||||
-rw-r--r-- | gcc/gensupport.c | 4 |
12 files changed, 186 insertions, 137 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e080d76345d..a65715f1c93 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,43 @@ 2008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + * cse.c (approx_reg_cost_1, cse_insn): Fix -Wc++-compat and/or + -Wcast-qual warnings. + * gcc.c (process_command): Likewise. + * genattrtab.c (oballoc): Use XOBNEW. + (oballocvec): Define. + (attr_hash_add_rtx, attr_hash_add_string, attr_string, + get_attr_value, fill_attr, make_length_attrs, gen_attr, gen_insn, + gen_delay, find_attr, gen_insn_reserv, gen_bypass_1): Fix + -Wc++-compat and/or -Wcast-qual warnings. + * genautomata.c (XCREATENODE, XCREATENODEVEC, XCREATENODEVAR, + XCOPYNODE, XCOPYNODEVEC, XCOPYNODEVAR): New. + (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set, + gen_presence_absence_set, gen_automaton, gen_regexp_el, + gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof, + gen_regexp_sequence, gen_reserv, gen_insn_reserv, process_excls, + add_excls, process_presence_absence_names, + process_presence_absence_patterns, add_presence_absence, + process_regexp, add_advance_cycle_insn_decl, get_free_alt_state, + get_free_state, add_arc, get_free_automata_list_el, + form_reserv_sets_list, copy_insn_regexp, transform_1, transform_2, + transform_3, cache_presence, create_ainsns, create_automata, + create_state_ainsn_table, dfa_insn_code_enlarge, + output_trans_func, output_min_issue_delay_func, + output_dead_lock_func, output_reset_func, + output_get_cpu_unit_code_func, output_dfa_start_func, + expand_automata): Likewise. + * genextract.c (gen_insn): Likewise. + * gengtype-lex.l: Likewise. + * gengtype.c (read_input_list, adjust_field_type, + process_gc_options): Likewise. + * genoutput.c (note_constraint): Likewise. + * genpreds.c (mangle, add_constraint): Likewise. + * genrecog.c (process_define_predicate, new_decision, + add_to_sequence): Likewise. + * gensupport.c (record_insn_name): Likewise. + +2008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + * config/i386/driver-i386.c (detect_caches_amd, detect_caches_intel, host_detect_local_cpu): Fix -Wc++-compat and/or -Wcast-qual warnings. diff --git a/gcc/cse.c b/gcc/cse.c index 02420f1a076..86c0f5408da 100644 --- a/gcc/cse.c +++ b/gcc/cse.c @@ -663,7 +663,7 @@ static int approx_reg_cost_1 (rtx *xp, void *data) { rtx x = *xp; - int *cost_p = data; + int *cost_p = (int *) data; if (x && REG_P (x)) { @@ -4005,7 +4005,7 @@ cse_insn (rtx insn) if (GET_CODE (x) == SET) { - sets = alloca (sizeof (struct set)); + sets = XALLOCA (struct set); sets[0].rtl = x; /* Ignore SETs that are unconditional jumps. @@ -4040,7 +4040,7 @@ cse_insn (rtx insn) { int lim = XVECLEN (x, 0); - sets = alloca (lim * sizeof (struct set)); + sets = XALLOCAVEC (struct set, lim); /* Find all regs explicitly clobbered in this insn, and ensure they are not replaced with any other regs diff --git a/gcc/gcc.c b/gcc/gcc.c index 7c23b98e12f..a8c6218e646 100644 --- a/gcc/gcc.c +++ b/gcc/gcc.c @@ -3409,15 +3409,14 @@ process_command (int argc, const char **argv) for (baselen = strlen (progname); baselen > 0; baselen--) if (IS_DIR_SEPARATOR (progname[baselen-1])) break; - new_argv0 = (char *) xmemdup (progname, baselen, + new_argv0 = XDUPVAR (char, progname, baselen, baselen + concat_length (new_version, new_machine, "-gcc-", NULL) + 1); strcpy (new_argv0 + baselen, new_machine); strcat (new_argv0, "-gcc-"); strcat (new_argv0, new_version); - new_argv = (char **) xmemdup (argv, (argc + 1) * sizeof (argv[0]), - (argc + 1) * sizeof (argv[0])); + new_argv = XDUPVEC (char *, argv, argc + 1); new_argv[0] = new_argv0; execvp (new_argv0, new_argv); diff --git a/gcc/genattrtab.c b/gcc/genattrtab.c index 47b6ec13c9f..079c81f9552 100644 --- a/gcc/genattrtab.c +++ b/gcc/genattrtab.c @@ -286,7 +286,8 @@ static rtx one_fn (rtx); static rtx max_fn (rtx); static rtx min_fn (rtx); -#define oballoc(size) obstack_alloc (hash_obstack, size) +#define oballoc(T) XOBNEW (hash_obstack, T) +#define oballocvec(T, N) XOBNEWVEC (hash_obstack, T, (N)) /* Hash table for sharing RTL and strings. */ @@ -326,7 +327,7 @@ attr_hash_add_rtx (int hashcode, rtx rtl) { struct attr_hash *h; - h = obstack_alloc (hash_obstack, sizeof (struct attr_hash)); + h = XOBNEW (hash_obstack, struct attr_hash); h->hashcode = hashcode; h->u.rtl = rtl; h->next = attr_hash_table[hashcode % RTL_HASH_SIZE]; @@ -340,7 +341,7 @@ attr_hash_add_string (int hashcode, char *str) { struct attr_hash *h; - h = obstack_alloc (hash_obstack, sizeof (struct attr_hash)); + h = XOBNEW (hash_obstack, struct attr_hash); h->hashcode = -hashcode; h->u.str = str; h->next = attr_hash_table[hashcode % RTL_HASH_SIZE]; @@ -601,7 +602,7 @@ attr_string (const char *str, int len) return h->u.str; /* <-- return if found. */ /* Not found; create a permanent copy and add it to the hash table. */ - new_str = obstack_alloc (hash_obstack, len + 1); + new_str = XOBNEWVAR (hash_obstack, char, len + 1); memcpy (new_str, str, len); new_str[len] = '\0'; attr_hash_add_string (hashcode, new_str); @@ -1297,7 +1298,7 @@ get_attr_value (rtx value, struct attr_desc *attr, int insn_code) || insn_alternatives[av->first_insn->def->insn_code])) return av; - av = oballoc (sizeof (struct attr_value)); + av = oballoc (struct attr_value); av->value = value; av->next = attr->first_value; attr->first_value = av; @@ -1440,7 +1441,7 @@ fill_attr (struct attr_desc *attr) else av = get_attr_value (value, attr, id->insn_code); - ie = oballoc (sizeof (struct insn_ent)); + ie = oballoc (struct insn_ent); ie->def = id; insert_insn_ent (av, ie); } @@ -1571,7 +1572,7 @@ make_length_attrs (void) no_address_fn[i], address_fn[i]), new_attr, ie->def->insn_code); - new_ie = oballoc (sizeof (struct insn_ent)); + new_ie = oballoc (struct insn_ent); new_ie->def = ie->def; insert_insn_ent (new_av, new_ie); } @@ -2949,7 +2950,7 @@ gen_attr (rtx exp, int lineno) name_ptr = XSTR (exp, 1); while ((p = next_comma_elt (&name_ptr)) != NULL) { - av = oballoc (sizeof (struct attr_value)); + av = oballoc (struct attr_value); av->value = attr_rtx (CONST_STRING, p); av->next = attr->first_value; attr->first_value = av; @@ -3062,7 +3063,7 @@ gen_insn (rtx exp, int lineno) { struct insn_def *id; - id = oballoc (sizeof (struct insn_def)); + id = oballoc (struct insn_def); id->next = defs; defs = id; id->def = exp; @@ -3126,7 +3127,7 @@ gen_delay (rtx def, int lineno) have_annul_false = 1; } - delay = oballoc (sizeof (struct delay_desc)); + delay = oballoc (struct delay_desc); delay->def = def; delay->num = ++num_delays; delay->next = delays; @@ -4158,7 +4159,7 @@ find_attr (const char **name_p, int create) if (! create) return NULL; - attr = oballoc (sizeof (struct attr_desc)); + attr = oballoc (struct attr_desc); attr->name = DEF_ATTR_STRING (name); attr->first_value = attr->default_val = NULL; attr->is_numeric = attr->is_const = attr->is_special = 0; @@ -4297,7 +4298,7 @@ static size_t n_insn_reservs; static void gen_insn_reserv (rtx def) { - struct insn_reserv *decl = oballoc (sizeof (struct insn_reserv)); + struct insn_reserv *decl = oballoc (struct insn_reserv); decl->name = DEF_ATTR_STRING (XSTR (def, 0)); decl->default_latency = XINT (def, 1); @@ -4338,7 +4339,7 @@ gen_bypass_1 (const char *s, size_t len) if (s == b->insn) return; /* already got that one */ - b = oballoc (sizeof (struct bypass_list)); + b = oballoc (struct bypass_list); b->insn = s; b->next = all_bypasses; all_bypasses = b; @@ -4544,13 +4545,13 @@ from the machine description file `md'. */\n\n"); printf ("#define operands recog_data.operand\n\n"); /* Make `insn_alternatives'. */ - insn_alternatives = oballoc (insn_code_number * sizeof (int)); + insn_alternatives = oballocvec (int, insn_code_number); for (id = defs; id; id = id->next) if (id->insn_code >= 0) insn_alternatives[id->insn_code] = (1 << id->num_alternatives) - 1; /* Make `insn_n_alternatives'. */ - insn_n_alternatives = oballoc (insn_code_number * sizeof (int)); + insn_n_alternatives = oballocvec (int, insn_code_number); for (id = defs; id; id = id->next) if (id->insn_code >= 0) insn_n_alternatives[id->insn_code] = id->num_alternatives; diff --git a/gcc/genautomata.c b/gcc/genautomata.c index 59c1af06544..3709c557fb3 100644 --- a/gcc/genautomata.c +++ b/gcc/genautomata.c @@ -1085,6 +1085,14 @@ regexp_mode_check_failed (enum regexp_mode mode, #endif /* #if defined ENABLE_RTL_CHECKING && (GCC_VERSION >= 2007) */ +#define XCREATENODE(T) ((T *) create_node (sizeof (T))) +#define XCREATENODEVEC(T, N) ((T *) create_node (sizeof (T) * (N))) +#define XCREATENODEVAR(T, S) ((T *) create_node ((S))) + +#define XCOPYNODE(T, P) ((T *) copy_node ((P), sizeof (T))) +#define XCOPYNODEVEC(T, P, N) ((T *) copy_node ((P), sizeof (T) * (N))) +#define XCOPYNODEVAR(T, P, S) ((T *) copy_node ((P), (S))) + /* Create IR structure (node). */ static void * create_node (size_t size) @@ -1242,7 +1250,7 @@ gen_cpu_unit (rtx def) fatal ("invalid string `%s' in define_cpu_unit", XSTR (def, 0)); for (i = 0; i < vect_length; i++) { - decl = create_node (sizeof (struct decl)); + decl = XCREATENODE (struct decl); decl->mode = dm_unit; decl->pos = 0; DECL_UNIT (decl)->name = check_name (str_cpu_units [i], decl->pos); @@ -1272,7 +1280,7 @@ gen_query_cpu_unit (rtx def) fatal ("invalid string `%s' in define_query_cpu_unit", XSTR (def, 0)); for (i = 0; i < vect_length; i++) { - decl = create_node (sizeof (struct decl)); + decl = XCREATENODE (struct decl); decl->mode = dm_unit; decl->pos = 0; DECL_UNIT (decl)->name = check_name (str_cpu_units [i], decl->pos); @@ -1306,7 +1314,7 @@ gen_bypass (rtx def) for (i = 0; i < out_length; i++) for (j = 0; j < in_length; j++) { - decl = create_node (sizeof (struct decl)); + decl = XCREATENODE (struct decl); decl->mode = dm_bypass; decl->pos = 0; DECL_BYPASS (decl)->latency = XINT (def, 0); @@ -1341,7 +1349,7 @@ gen_excl_set (rtx def) if (second_str_cpu_units == NULL) fatal ("invalid second string `%s' in exclusion_set", XSTR (def, 1)); length += first_vect_length; - decl = create_node (sizeof (struct decl) + (length - 1) * sizeof (char *)); + decl = XCREATENODEVAR (struct decl, sizeof (struct decl) + (length - 1) * sizeof (char *)); decl->mode = dm_excl; decl->pos = 0; DECL_EXCL (decl)->all_names_num = length; @@ -1394,14 +1402,14 @@ gen_presence_absence_set (rtx def, int presence_p, int final_p) : (final_p ? "invalid second string `%s' in final_absence_set" : "invalid second string `%s' in absence_set")), XSTR (def, 1)); - str_patterns = obstack_alloc (&irp, patterns_length * sizeof (char **)); + str_patterns = XOBNEWVEC (&irp, char **, patterns_length); for (i = 0; i < patterns_length; i++) { str_patterns [i] = get_str_vect (str_pattern_lists [i], &length, ' ', FALSE); gcc_assert (str_patterns [i]); } - decl = create_node (sizeof (struct decl)); + decl = XCREATENODE (struct decl); decl->pos = 0; if (presence_p) { @@ -1486,7 +1494,7 @@ gen_automaton (rtx def) fatal ("invalid string `%s' in define_automaton", XSTR (def, 0)); for (i = 0; i < vect_length; i++) { - decl = create_node (sizeof (struct decl)); + decl = XCREATENODE (struct decl); decl->mode = dm_automaton; decl->pos = 0; DECL_AUTOMATON (decl)->name = check_name (str_automata [i], decl->pos); @@ -1539,19 +1547,19 @@ gen_regexp_el (const char *str) len = strlen (str); if (str [len - 1] != ')') fatal ("garbage after ) in reservation `%s'", reserv_str); - dstr = alloca (len - 1); + dstr = XALLOCAVAR (char, len - 1); memcpy (dstr, str + 1, len - 2); dstr [len-2] = '\0'; regexp = gen_regexp_sequence (dstr); } else if (strcmp (str, NOTHING_NAME) == 0) { - regexp = create_node (sizeof *regexp); + regexp = XCREATENODE (struct regexp); regexp->mode = rm_nothing; } else { - regexp = create_node (sizeof *regexp); + regexp = XCREATENODE (struct regexp); regexp->mode = rm_unit; REGEXP_UNIT (regexp)->name = str; } @@ -1576,7 +1584,7 @@ gen_regexp_repeat (const char *str) regexp = gen_regexp_el (repeat_vect [0]); for (i = 1; i < els_num; i++) { - repeat = create_node (sizeof (struct regexp)); + repeat = XCREATENODE (struct regexp); repeat->mode = rm_repeat; REGEXP_REPEAT (repeat)->regexp = regexp; REGEXP_REPEAT (repeat)->repeat_num = atoi (repeat_vect [i]); @@ -1605,8 +1613,8 @@ gen_regexp_allof (const char *str) fatal ("invalid `%s' in reservation `%s'", str, reserv_str); if (els_num > 1) { - allof = create_node (sizeof (struct regexp) - + sizeof (regexp_t) * (els_num - 1)); + allof = XCREATENODEVAR (struct regexp, sizeof (struct regexp) + + sizeof (regexp_t) * (els_num - 1)); allof->mode = rm_allof; REGEXP_ALLOF (allof)->regexps_num = els_num; for (i = 0; i < els_num; i++) @@ -1631,8 +1639,8 @@ gen_regexp_oneof (const char *str) fatal ("invalid `%s' in reservation `%s'", str, reserv_str); if (els_num > 1) { - oneof = create_node (sizeof (struct regexp) - + sizeof (regexp_t) * (els_num - 1)); + oneof = XCREATENODEVAR (struct regexp, sizeof (struct regexp) + + sizeof (regexp_t) * (els_num - 1)); oneof->mode = rm_oneof; REGEXP_ONEOF (oneof)->regexps_num = els_num; for (i = 0; i < els_num; i++) @@ -1655,8 +1663,8 @@ gen_regexp_sequence (const char *str) sequence_vect = get_str_vect (str, &els_num, ',', TRUE); if (els_num > 1) { - sequence = create_node (sizeof (struct regexp) - + sizeof (regexp_t) * (els_num - 1)); + sequence = XCREATENODEVAR (struct regexp, sizeof (struct regexp) + + sizeof (regexp_t) * (els_num - 1)); sequence->mode = rm_sequence; REGEXP_SEQUENCE (sequence)->regexps_num = els_num; for (i = 0; i < els_num; i++) @@ -1686,7 +1694,7 @@ gen_reserv (rtx def) { decl_t decl; - decl = create_node (sizeof (struct decl)); + decl = XCREATENODE (struct decl); decl->mode = dm_reserv; decl->pos = 0; DECL_RESERV (decl)->name = check_name (XSTR (def, 0), decl->pos); @@ -1704,7 +1712,7 @@ gen_insn_reserv (rtx def) { decl_t decl; - decl = create_node (sizeof (struct decl)); + decl = XCREATENODE (struct decl); decl->mode = dm_insn_reserv; decl->pos = 0; DECL_INSN_RESERV (decl)->name @@ -2052,7 +2060,7 @@ process_excls (char **names, int num, pos_t excl_pos ATTRIBUTE_UNUSED) error ("`%s' in exclusion is not unit", names [i]); else { - new_el = create_node (sizeof (struct unit_set_el)); + new_el = XCREATENODE (struct unit_set_el); new_el->unit_decl = DECL_UNIT (decl_in_table); new_el->next_unit_set_el = NULL; if (last_el == NULL) @@ -2105,7 +2113,7 @@ add_excls (unit_set_el_t dest_list, unit_set_el_t source_list, if (curr_el == NULL) { /* Element not found - insert. */ - copy = copy_node (src, sizeof (*src)); + copy = XCOPYNODE (struct unit_set_el, src); copy->next_unit_set_el = NULL; if (prev_el == NULL) dst->unit_decl->excl_list = copy; @@ -2152,7 +2160,7 @@ process_presence_absence_names (char **names, int num, : "`%s' in absence set is not unit")), names [i]); else { - new_el = create_node (sizeof (struct unit_set_el)); + new_el = XCREATENODE (struct unit_set_el); new_el->unit_decl = DECL_UNIT (decl_in_table); new_el->next_unit_set_el = NULL; if (last_el == NULL) @@ -2187,8 +2195,9 @@ process_presence_absence_patterns (char ***patterns, int num, { for (j = 0; patterns [i] [j] != NULL; j++) ; - new_el = create_node (sizeof (struct pattern_set_el) - + sizeof (struct unit_decl *) * j); + new_el = XCREATENODEVAR (struct pattern_set_el, + sizeof (struct pattern_set_el) + + sizeof (struct unit_decl *) * j); new_el->unit_decls = (struct unit_decl **) ((char *) new_el + sizeof (struct pattern_set_el)); @@ -2334,7 +2343,7 @@ add_presence_absence (unit_set_el_t dest_list, prev_el != NULL && prev_el->next_pattern_set_el != NULL; prev_el = prev_el->next_pattern_set_el) ; - copy = copy_node (pat, sizeof (*pat)); + copy = XCOPYNODE (struct pattern_set_el, pat); copy->next_pattern_set_el = NULL; if (prev_el == NULL) { @@ -2664,7 +2673,7 @@ process_regexp (regexp_t regexp) case dm_reserv: DECL_RESERV (decl_in_table)->reserv_is_used = 1; - new_regexp = create_node (sizeof (struct regexp)); + new_regexp = XCREATENODE (struct regexp); new_regexp->mode = rm_reserv; new_regexp->pos = regexp->pos; REGEXP_RESERV (new_regexp)->name = REGEXP_UNIT (regexp)->name; @@ -3105,7 +3114,7 @@ static decl_t advance_cycle_insn_decl; static void add_advance_cycle_insn_decl (void) { - advance_cycle_insn_decl = create_node (sizeof (struct decl)); + advance_cycle_insn_decl = XCREATENODE (struct decl); advance_cycle_insn_decl->mode = dm_insn_reserv; advance_cycle_insn_decl->pos = no_pos; DECL_INSN_RESERV (advance_cycle_insn_decl)->regexp = NULL; @@ -3148,7 +3157,7 @@ get_free_alt_state (void) #ifndef NDEBUG allocated_alt_states_num++; #endif - result = create_node (sizeof (struct alt_state)); + result = XCREATENODE (struct alt_state); } result->state = NULL; result->next_alt_state = NULL; @@ -3623,7 +3632,7 @@ get_free_state (int with_reservs, automaton_t automaton) #ifndef NDEBUG allocated_states_num++; #endif - result = create_node (sizeof (struct state)); + result = XCREATENODE (struct state); result->automaton = automaton; result->first_out_arc = NULL; result->unique_num = curr_unique_state_num; @@ -3890,7 +3899,7 @@ add_arc (state_t from_state, state_t to_state, ainsn_t ainsn) #ifndef NDEBUG allocated_arcs_num++; #endif - new_arc = create_node (sizeof (struct arc)); + new_arc = XCREATENODE (struct arc); new_arc->to_state = NULL; new_arc->insn = NULL; new_arc->next_out_arc = NULL; @@ -3964,7 +3973,7 @@ get_free_automata_list_el (void) = first_free_automata_list_el->next_automata_list_el; } else - result = create_node (sizeof (struct automata_list_el)); + result = XCREATENODE (struct automata_list_el); result->automaton = NULL; result->next_automata_list_el = NULL; return result; @@ -4191,7 +4200,7 @@ form_reserv_sets_list (pattern_set_el_t pattern_list) prev = first = NULL; for (el = pattern_list; el != NULL; el = el->next_pattern_set_el) { - curr = create_node (sizeof (struct pattern_reserv)); + curr = XCREATENODE (struct pattern_reserv); curr->reserv = alloc_empty_reserv_sets (); curr->next_pattern_reserv = NULL; for (i = 0; i < el->units_num; i++) @@ -4362,44 +4371,44 @@ copy_insn_regexp (regexp_t regexp) break; case rm_unit: - result = copy_node (regexp, sizeof (struct regexp)); + result = XCOPYNODE (struct regexp, regexp); break; case rm_repeat: - result = copy_node (regexp, sizeof (struct regexp)); + result = XCOPYNODE (struct regexp, regexp); REGEXP_REPEAT (result)->regexp = copy_insn_regexp (REGEXP_REPEAT (regexp)->regexp); break; case rm_sequence: - result = copy_node (regexp, - sizeof (struct regexp) + sizeof (regexp_t) - * (REGEXP_SEQUENCE (regexp)->regexps_num - 1)); + result = XCOPYNODEVAR (struct regexp, regexp, + sizeof (struct regexp) + sizeof (regexp_t) + * (REGEXP_SEQUENCE (regexp)->regexps_num - 1)); for (i = 0; i <REGEXP_SEQUENCE (regexp)->regexps_num; i++) REGEXP_SEQUENCE (result)->regexps [i] = copy_insn_regexp (REGEXP_SEQUENCE (regexp)->regexps [i]); break; case rm_allof: - result = copy_node (regexp, - sizeof (struct regexp) + sizeof (regexp_t) - * (REGEXP_ALLOF (regexp)->regexps_num - 1)); + result = XCOPYNODEVAR (struct regexp, regexp, + sizeof (struct regexp) + sizeof (regexp_t) + * (REGEXP_ALLOF (regexp)->regexps_num - 1)); for (i = 0; i < REGEXP_ALLOF (regexp)->regexps_num; i++) REGEXP_ALLOF (result)->regexps [i] = copy_insn_regexp (REGEXP_ALLOF (regexp)->regexps [i]); break; case rm_oneof: - result = copy_node (regexp, - sizeof (struct regexp) + sizeof (regexp_t) - * (REGEXP_ONEOF (regexp)->regexps_num - 1)); + result = XCOPYNODEVAR (struct regexp, regexp, + sizeof (struct regexp) + sizeof (regexp_t) + * (REGEXP_ONEOF (regexp)->regexps_num - 1)); for (i = 0; i < REGEXP_ONEOF (regexp)->regexps_num; i++) REGEXP_ONEOF (result)->regexps [i] = copy_insn_regexp (REGEXP_ONEOF (regexp)->regexps [i]); break; case rm_nothing: - result = copy_node (regexp, sizeof (struct regexp)); + result = XCOPYNODE (struct regexp, regexp); break; default: @@ -4428,8 +4437,8 @@ transform_1 (regexp_t regexp) gcc_assert (repeat_num > 1); operand = REGEXP_REPEAT (regexp)->regexp; pos = regexp->mode; - regexp = create_node (sizeof (struct regexp) + sizeof (regexp_t) - * (repeat_num - 1)); + regexp = XCREATENODEVAR (struct regexp, sizeof (struct regexp) + + sizeof (regexp_t) * (repeat_num - 1)); regexp->mode = rm_sequence; regexp->pos = pos; REGEXP_SEQUENCE (regexp)->regexps_num = repeat_num; @@ -4465,11 +4474,11 @@ transform_2 (regexp_t regexp) { gcc_assert (REGEXP_SEQUENCE (sequence)->regexps_num > 1 && REGEXP_SEQUENCE (regexp)->regexps_num > 1); - result = create_node (sizeof (struct regexp) - + sizeof (regexp_t) - * (REGEXP_SEQUENCE (regexp)->regexps_num - + REGEXP_SEQUENCE (sequence)->regexps_num - - 2)); + result = XCREATENODEVAR (struct regexp, sizeof (struct regexp) + + sizeof (regexp_t) + * (REGEXP_SEQUENCE (regexp)->regexps_num + + REGEXP_SEQUENCE (sequence)->regexps_num + - 2)); result->mode = rm_sequence; result->pos = regexp->pos; REGEXP_SEQUENCE (result)->regexps_num @@ -4509,10 +4518,10 @@ transform_2 (regexp_t regexp) { gcc_assert (REGEXP_ALLOF (allof)->regexps_num > 1 && REGEXP_ALLOF (regexp)->regexps_num > 1); - result = create_node (sizeof (struct regexp) - + sizeof (regexp_t) - * (REGEXP_ALLOF (regexp)->regexps_num - + REGEXP_ALLOF (allof)->regexps_num - 2)); + result = XCREATENODEVAR (struct regexp, sizeof (struct regexp) + + sizeof (regexp_t) + * (REGEXP_ALLOF (regexp)->regexps_num + + REGEXP_ALLOF (allof)->regexps_num - 2)); result->mode = rm_allof; result->pos = regexp->pos; REGEXP_ALLOF (result)->regexps_num @@ -4552,10 +4561,10 @@ transform_2 (regexp_t regexp) { gcc_assert (REGEXP_ONEOF (oneof)->regexps_num > 1 && REGEXP_ONEOF (regexp)->regexps_num > 1); - result = create_node (sizeof (struct regexp) - + sizeof (regexp_t) - * (REGEXP_ONEOF (regexp)->regexps_num - + REGEXP_ONEOF (oneof)->regexps_num - 2)); + result = XCREATENODEVAR (struct regexp, sizeof (struct regexp) + + sizeof (regexp_t) + * (REGEXP_ONEOF (regexp)->regexps_num + + REGEXP_ONEOF (oneof)->regexps_num - 2)); result->mode = rm_oneof; result->pos = regexp->pos; REGEXP_ONEOF (result)->regexps_num @@ -4607,9 +4616,9 @@ transform_3 (regexp_t regexp) { gcc_assert (REGEXP_ONEOF (oneof)->regexps_num > 1 && REGEXP_SEQUENCE (regexp)->regexps_num > 1); - result = create_node (sizeof (struct regexp) - + sizeof (regexp_t) - * (REGEXP_ONEOF (oneof)->regexps_num - 1)); + result = XCREATENODEVAR (struct regexp, sizeof (struct regexp) + + sizeof (regexp_t) + * (REGEXP_ONEOF (oneof)->regexps_num - 1)); result->mode = rm_oneof; result->pos = regexp->pos; REGEXP_ONEOF (result)->regexps_num @@ -4617,9 +4626,9 @@ transform_3 (regexp_t regexp) for (i = 0; i < REGEXP_ONEOF (result)->regexps_num; i++) { sequence - = create_node (sizeof (struct regexp) - + sizeof (regexp_t) - * (REGEXP_SEQUENCE (regexp)->regexps_num - 1)); + = XCREATENODEVAR (struct regexp, sizeof (struct regexp) + + sizeof (regexp_t) + * (REGEXP_SEQUENCE (regexp)->regexps_num - 1)); sequence->mode = rm_sequence; sequence->pos = regexp->pos; REGEXP_SEQUENCE (sequence)->regexps_num @@ -4659,9 +4668,9 @@ transform_3 (regexp_t regexp) { gcc_assert (REGEXP_ONEOF (oneof)->regexps_num > 1 && REGEXP_ALLOF (regexp)->regexps_num > 1); - result = create_node (sizeof (struct regexp) - + sizeof (regexp_t) - * (REGEXP_ONEOF (oneof)->regexps_num - 1)); + result = XCREATENODEVAR (struct regexp, sizeof (struct regexp) + + sizeof (regexp_t) + * (REGEXP_ONEOF (oneof)->regexps_num - 1)); result->mode = rm_oneof; result->pos = regexp->pos; REGEXP_ONEOF (result)->regexps_num @@ -4669,9 +4678,9 @@ transform_3 (regexp_t regexp) for (i = 0; i < REGEXP_ONEOF (result)->regexps_num; i++) { allof - = create_node (sizeof (struct regexp) - + sizeof (regexp_t) - * (REGEXP_ALLOF (regexp)->regexps_num - 1)); + = XCREATENODEVAR (struct regexp, sizeof (struct regexp) + + sizeof (regexp_t) + * (REGEXP_ALLOF (regexp)->regexps_num - 1)); allof->mode = rm_allof; allof->pos = regexp->pos; REGEXP_ALLOF (allof)->regexps_num @@ -4714,8 +4723,8 @@ transform_3 (regexp_t regexp) { gcc_assert (max_seq_length != 1 && REGEXP_ALLOF (regexp)->regexps_num > 1); - result = create_node (sizeof (struct regexp) - + sizeof (regexp_t) * (max_seq_length - 1)); + result = XCREATENODEVAR (struct regexp, sizeof (struct regexp) + + sizeof (regexp_t) * (max_seq_length - 1)); result->mode = rm_sequence; result->pos = regexp->pos; REGEXP_SEQUENCE (result)->regexps_num = max_seq_length; @@ -4752,9 +4761,9 @@ transform_3 (regexp_t regexp) REGEXP_SEQUENCE (result)->regexps [i] = allof_op; else { - allof = create_node (sizeof (struct regexp) - + sizeof (regexp_t) - * (allof_length - 1)); + allof = XCREATENODEVAR (struct regexp, sizeof (struct regexp) + + sizeof (regexp_t) + * (allof_length - 1)); allof->mode = rm_allof; allof->pos = regexp->pos; REGEXP_ALLOF (allof)->regexps_num = allof_length; @@ -5669,7 +5678,7 @@ cache_presence (state_t state) sz = (description->query_units_num + sizeof (int) * CHAR_BIT - 1) / (sizeof (int) * CHAR_BIT); - state->presence_signature = create_node (sz * sizeof (int)); + state->presence_signature = XCREATENODEVEC (unsigned int, sz); for (i = 0; i < description->units_num; i++) if (units_array [i]->query_p) { @@ -6397,7 +6406,7 @@ create_ainsns (void) decl = description->decls [i]; if (decl->mode == dm_insn_reserv) { - curr_ainsn = create_node (sizeof (struct ainsn)); + curr_ainsn = XCREATENODE (struct ainsn); curr_ainsn->insn_reserv_decl = DECL_INSN_RESERV (decl); curr_ainsn->important_p = FALSE; curr_ainsn->next_ainsn = NULL; @@ -6455,7 +6464,7 @@ create_automata (void) curr_automaton_num < automata_num; curr_automaton_num++, prev_automaton = curr_automaton) { - curr_automaton = create_node (sizeof (struct automaton)); + curr_automaton = XCREATENODE (struct automaton); curr_automaton->ainsn_list = create_ainsns (); curr_automaton->corresponding_automaton_decl = NULL; curr_automaton->next_automaton = NULL; @@ -6476,7 +6485,7 @@ create_automata (void) if (decl->mode == dm_automaton && DECL_AUTOMATON (decl)->automaton_is_used) { - curr_automaton = create_node (sizeof (struct automaton)); + curr_automaton = XCREATENODE (struct automaton); curr_automaton->ainsn_list = create_ainsns (); curr_automaton->corresponding_automaton_decl = DECL_AUTOMATON (decl); @@ -6493,7 +6502,7 @@ create_automata (void) } if (curr_automaton_num == 0) { - curr_automaton = create_node (sizeof (struct automaton)); + curr_automaton = XCREATENODE (struct automaton); curr_automaton->ainsn_list = create_ainsns (); curr_automaton->corresponding_automaton_decl = NULL; curr_automaton->next_automaton = NULL; @@ -6994,7 +7003,7 @@ create_state_ainsn_table (automaton_t automaton) int full_vect_length; int i; - tab = create_node (sizeof (struct state_ainsn_table)); + tab = XCREATENODE (struct state_ainsn_table); tab->automaton = automaton; tab->comb_vect = VEC_alloc (vect_el_t,heap, 10000); @@ -7908,8 +7917,8 @@ dfa_insn_code_enlarge (int uid)\n\ {\n\ int i = %s;\n\ %s = 2 * uid;\n\ - %s = xrealloc (%s,\n\ - %s * sizeof(int));\n\ + %s = XRESIZEVEC (int, %s,\n\ + %s);\n\ for (; i < %s; i++)\n\ %s[i] = -1;\n}\n\n", DFA_INSN_CODES_LENGTH_VARIABLE_NAME, @@ -7954,8 +7963,8 @@ output_trans_func (void) fprintf (output_file, "{\n int %s;\n", INTERNAL_INSN_CODE_NAME); output_internal_insn_code_evaluation (INSN_PARAMETER_NAME, INTERNAL_INSN_CODE_NAME, -1); - fprintf (output_file, " return %s (%s, %s);\n}\n\n", - INTERNAL_TRANSITION_FUNC_NAME, INTERNAL_INSN_CODE_NAME, STATE_NAME); + fprintf (output_file, " return %s (%s, (struct %s *) %s);\n}\n\n", + INTERNAL_TRANSITION_FUNC_NAME, INTERNAL_INSN_CODE_NAME, CHIP_NAME, STATE_NAME); } /* Output function `min_issue_delay'. */ @@ -7973,9 +7982,9 @@ output_min_issue_delay_func (void) INTERNAL_INSN_CODE_NAME, ADVANCE_CYCLE_VALUE_NAME); fprintf (output_file, " }\n else\n %s = %s;\n", INTERNAL_INSN_CODE_NAME, ADVANCE_CYCLE_VALUE_NAME); - fprintf (output_file, "\n return %s (%s, %s);\n", + fprintf (output_file, "\n return %s (%s, (struct %s *) %s);\n", INTERNAL_MIN_ISSUE_DELAY_FUNC_NAME, INTERNAL_INSN_CODE_NAME, - STATE_NAME); + CHIP_NAME, STATE_NAME); fprintf (output_file, "}\n\n"); } @@ -8008,8 +8017,8 @@ output_dead_lock_func (void) { fprintf (output_file, "int\n%s (%s %s)\n", DEAD_LOCK_FUNC_NAME, STATE_TYPE_NAME, STATE_NAME); - fprintf (output_file, "{\n return %s (%s);\n}\n\n", - INTERNAL_DEAD_LOCK_FUNC_NAME, STATE_NAME); + fprintf (output_file, "{\n return %s ((struct %s *) %s);\n}\n\n", + INTERNAL_DEAD_LOCK_FUNC_NAME, CHIP_NAME, STATE_NAME); } /* Output function `internal_reset'. */ @@ -8036,8 +8045,8 @@ output_reset_func (void) { fprintf (output_file, "void\n%s (%s %s)\n", RESET_FUNC_NAME, STATE_TYPE_NAME, STATE_NAME); - fprintf (output_file, "{\n %s (%s);\n}\n\n", INTERNAL_RESET_FUNC_NAME, - STATE_NAME); + fprintf (output_file, "{\n %s ((struct %s *) %s);\n}\n\n", INTERNAL_RESET_FUNC_NAME, + CHIP_NAME, STATE_NAME); } /* Output function `min_insn_conflict_delay'. */ @@ -8284,7 +8293,7 @@ output_get_cpu_unit_code_func (void) LOW_VARIABLE_NAME, MIDDLE_VARIABLE_NAME, HIGH_VARIABLE_NAME); fprintf (output_file, " static struct %s %s [] =\n {\n", NAME_CODE_STRUCT_NAME, NAME_CODE_TABLE_NAME); - units = xmalloc (sizeof (unit_decl_t) * description->units_num); + units = XNEWVEC (unit_decl_t, description->units_num); memcpy (units, units_array, sizeof (unit_decl_t) * description->units_num); qsort (units, description->units_num, sizeof (unit_decl_t), units_cmp); for (i = 0; i < description->units_num; i++) @@ -8416,7 +8425,7 @@ output_dfa_start_func (void) fprintf (output_file, "void\n%s (void)\n{\n %s = get_max_uid ();\n", DFA_START_FUNC_NAME, DFA_INSN_CODES_LENGTH_VARIABLE_NAME); - fprintf (output_file, " %s = xmalloc (%s * sizeof (int));\n", + fprintf (output_file, " %s = XNEWVEC (int, %s);\n", DFA_INSN_CODES_VARIABLE_NAME, DFA_INSN_CODES_LENGTH_VARIABLE_NAME); fprintf (output_file, " %s ();\n}\n\n", DFA_CLEAN_INSN_CACHE_FUNC_NAME); } @@ -9099,9 +9108,10 @@ expand_automata (void) { int i; - description = create_node (sizeof (struct description) - /* One entry for cycle advancing insn. */ - + sizeof (decl_t) * VEC_length (decl_t, decls)); + description = XCREATENODEVAR (struct description, + sizeof (struct description) + /* One entry for cycle advancing insn. */ + + sizeof (decl_t) * VEC_length (decl_t, decls)); description->decls_num = VEC_length (decl_t, decls); description->query_units_num = 0; for (i = 0; i < description->decls_num; i++) diff --git a/gcc/genextract.c b/gcc/genextract.c index 2631e2adfe3..cfc7037528a 100644 --- a/gcc/genextract.c +++ b/gcc/genextract.c @@ -152,7 +152,7 @@ gen_insn (rtx insn, int insn_code_number) /* Otherwise, make a new extraction method. We stash the arrays after the extraction structure in memory. */ - p = xmalloc (sizeof (struct extraction) + p = XNEWVAR (struct extraction, sizeof (struct extraction) + op_count*sizeof (char *) + dup_count*sizeof (char *) + dup_count*sizeof (int)); diff --git a/gcc/gengtype-lex.l b/gcc/gengtype-lex.l index 8cec71b30ff..822c84cbed4 100644 --- a/gcc/gengtype-lex.l +++ b/gcc/gengtype-lex.l @@ -116,7 +116,7 @@ EOID [^[:alnum:]_] "nested_ptr"/{EOID} { return NESTED_PTR; } [0-9]+ { return NUM; } "param"[0-9]*"_is"/{EOID} { - *yylval = xmemdup (yytext, yyleng, yyleng+1); + *yylval = XDUPVAR (const char, yytext, yyleng, yyleng+1); return PARAM_IS; } @@ -127,28 +127,28 @@ EOID [^[:alnum:]_] for (len = yyleng; ISSPACE (yytext[len-1]); len--) ; - *yylval = xmemdup (yytext, len, len+1); + *yylval = XDUPVAR (const char, yytext, len, len+1); update_lineno (yytext, yyleng); return SCALAR; } {ID}/{EOID} { - *yylval = xmemdup (yytext, yyleng, yyleng+1); + *yylval = XDUPVAR (const char, yytext, yyleng, yyleng+1); return ID; } \"([^"\\]|\\.)*\" { - *yylval = xmemdup (yytext+1, yyleng-2, yyleng-1); + *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng-1); return STRING; } /* This "terminal" avoids having to parse integer constant expressions. */ "["[^\[\]]*"]" { - *yylval = xmemdup (yytext+1, yyleng-2, yyleng-1); + *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng-1); return ARRAY; } "'"("\\".|[^\\])"'" { - *yylval = xmemdup (yytext+1, yyleng-2, yyleng); + *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng); return CHAR; } diff --git a/gcc/gengtype.c b/gcc/gengtype.c index dc428a8b608..72d10781241 100644 --- a/gcc/gengtype.c +++ b/gcc/gengtype.c @@ -439,7 +439,7 @@ read_input_list (const char *listname) : lang_dir_names[langno - 1]); bmap |= curlangs; - set_lang_bitmap ((char *)gt_files[i], bmap); + set_lang_bitmap (CONST_CAST(char *, gt_files[i]), bmap); here = committed; goto next_line; } @@ -1272,9 +1272,9 @@ adjust_field_type (type_p t, options_p opt) if (params[num] != NULL) error_at_line (&lexer_line, "duplicate `%s' option", opt->name); if (! ISDIGIT (opt->name[5])) - params[num] = create_pointer ((type_p) opt->info); + params[num] = create_pointer (CONST_CAST2(type_p, const char *, opt->info)); else - params[num] = (type_p) opt->info; + params[num] = CONST_CAST2 (type_p, const char *, opt->info); } else if (strcmp (opt->name, "special") == 0) { @@ -1323,7 +1323,8 @@ process_gc_options (options_p opt, enum gc_used_enum level, int *maybe_undef, options_p o; for (o = opt; o; o = o->next) if (strcmp (o->name, "ptr_alias") == 0 && level == GC_POINTED_TO) - set_gc_used_type ((type_p) o->info, GC_POINTED_TO, NULL); + set_gc_used_type (CONST_CAST2 (type_p, const char *, o->info), + GC_POINTED_TO, NULL); else if (strcmp (o->name, "maybe_undef") == 0) *maybe_undef = 1; else if (strcmp (o->name, "use_params") == 0) diff --git a/gcc/genoutput.c b/gcc/genoutput.c index be4fb00bc7c..3592388bd64 100644 --- a/gcc/genoutput.c +++ b/gcc/genoutput.c @@ -1173,7 +1173,7 @@ note_constraint (rtx exp, int lineno) return; } } - new = xmalloc (sizeof (struct constraint_data) + namelen); + new = XNEWVAR (struct constraint_data, sizeof (struct constraint_data) + namelen); strcpy ((char *)new + offsetof(struct constraint_data, name), name); new->namelen = namelen; new->lineno = lineno; diff --git a/gcc/genpreds.c b/gcc/genpreds.c index b292784247a..bf53944e297 100644 --- a/gcc/genpreds.c +++ b/gcc/genpreds.c @@ -732,7 +732,7 @@ mangle (const char *name) } obstack_1grow (rtl_obstack, '\0'); - return obstack_finish (rtl_obstack); + return XOBFINISH (rtl_obstack, const char *); } /* Add one constraint, of any sort, to the tables. NAME is its name; @@ -897,7 +897,7 @@ add_constraint (const char *name, const char *regclass, } - c = obstack_alloc (rtl_obstack, sizeof (struct constraint_data)); + c = XOBNEW (rtl_obstack, struct constraint_data); c->name = name; c->c_name = need_mangled_name ? mangle (name) : name; c->lineno = lineno; diff --git a/gcc/genrecog.c b/gcc/genrecog.c index 43afa7f449c..1713f133314 100644 --- a/gcc/genrecog.c +++ b/gcc/genrecog.c @@ -366,7 +366,7 @@ compute_predicate_codes (rtx exp, char codes[NUM_RTX_CODE]) static void process_define_predicate (rtx desc) { - struct pred_data *pred = xcalloc (sizeof (struct pred_data), 1); + struct pred_data *pred = XCNEW (struct pred_data); char codes[NUM_RTX_CODE]; int i; @@ -474,7 +474,7 @@ extern void debug_decision_list static struct decision * new_decision (const char *position, struct decision_head *last) { - struct decision *new = xcalloc (1, sizeof (struct decision)); + struct decision *new = XCNEW (struct decision); new->success = *last; new->position = xstrdup (position); @@ -890,7 +890,7 @@ add_to_sequence (rtx pattern, struct decision_head *last, const char *position, if (depth > max_depth) max_depth = depth; - subpos = xmalloc (depth + 2); + subpos = XNEWVAR (char, depth + 2); strcpy (subpos, position); subpos[depth + 1] = 0; diff --git a/gcc/gensupport.c b/gcc/gensupport.c index f455eb97260..912b81b79c6 100644 --- a/gcc/gensupport.c +++ b/gcc/gensupport.c @@ -1434,7 +1434,7 @@ record_insn_name (int code, const char *name) { int new_size; new_size = (insn_name_ptr_size ? insn_name_ptr_size * 2 : 512); - insn_name_ptr = xrealloc (insn_name_ptr, sizeof(char *) * new_size); + insn_name_ptr = XRESIZEVEC (char *, insn_name_ptr, new_size); memset (insn_name_ptr + insn_name_ptr_size, 0, sizeof(char *) * (new_size - insn_name_ptr_size)); insn_name_ptr_size = new_size; @@ -1442,7 +1442,7 @@ record_insn_name (int code, const char *name) if (!name || name[0] == '\0') { - new = xmalloc (strlen (last_real_name) + 10); + new = XNEWVAR (char, strlen (last_real_name) + 10); sprintf (new, "%s+%d", last_real_name, code - last_real_code); } else |