aboutsummaryrefslogtreecommitdiff
path: root/gcc/f/com.c
diff options
context:
space:
mode:
authorKaveh R. Ghazi <ghazi@caip.rutgers.edu>1999-11-29 02:26:49 +0000
committerKaveh Ghazi <ghazi@gcc.gnu.org>1999-11-29 02:26:49 +0000
commit14657de8f1fd8fff5cb3bed37d91267beea5e1f3 (patch)
tree0cd978ce53551cb7dfa9d8927ebebee6a99623a6 /gcc/f/com.c
parent146e60a0704290a2dcac78ffb1a2efbd7b852f7e (diff)
downloadgcc-14657de8f1fd8fff5cb3bed37d91267beea5e1f3.zip
gcc-14657de8f1fd8fff5cb3bed37d91267beea5e1f3.tar.gz
gcc-14657de8f1fd8fff5cb3bed37d91267beea5e1f3.tar.bz2
com.c (ffecom_get_invented_identifier): Rewrite to take an ellipses.
* com.c (ffecom_get_invented_identifier): Rewrite to take an ellipses. (ffecom_char_enhance_arg_, ffecom_do_entry_, ffecom_f2c_make_type_, ffecom_gen_sfuncdef_, ffecom_start_progunit_, ffecom_start_progunit_, ffecom_start_progunit_, ffecom_sym_transform_assign_, ffecom_transform_equiv_, ffecom_transform_namelist_, ffecom_vardesc_, ffecom_vardesc_array_, ffecom_vardesc_dims_, ffecom_end_transition, ffecom_lookup_label, ffecom_temp_label): Adjust accordingly. * com.h (ffecom_get_invented_identifier): Likewise. * sts.c (ffests_printf): New function taking ellipses. (ffests_printf_1D, ffests_printf_1U, ffests_printf_1s, ffests_printf_2Us): Delete. * sts.h: Likewise. * std.c (ffestd_R1001dump_, ffestd_R1001dump_1005_1_, ffestd_R1001dump_1005_2_, ffestd_R1001dump_1005_3_, ffestd_R1001dump_1005_4_, ffestd_R1001dump_1005_5_, ffestd_R1001dump_1010_2_, ffestd_R1001dump_1010_3_, ffestd_R1001dump_1010_4_, ffestd_R1001dump_1010_5_, ffestd_R1001rtexpr_): Call `ffests_printf', not `ffests_printf_*'. * ste.c (ffeste_io_ialist_, ffeste_io_cilist_, ffeste_io_cllist_, ffeste_io_icilist_, ffeste_io_inlist_, ffeste_io_olist_): Likewise. From-SVN: r30692
Diffstat (limited to 'gcc/f/com.c')
-rw-r--r--gcc/f/com.c101
1 files changed, 26 insertions, 75 deletions
diff --git a/gcc/f/com.c b/gcc/f/com.c
index 522bd24..23c4a9b 100644
--- a/gcc/f/com.c
+++ b/gcc/f/com.c
@@ -2402,10 +2402,9 @@ ffecom_char_enhance_arg_ (tree *xtype, ffesymbol s)
{
if (ffesymbol_where (s) == FFEINFO_whereDUMMY)
tlen = ffecom_get_invented_identifier ("__g77_length_%s",
- ffesymbol_text (s), -1);
+ ffesymbol_text (s));
else
- tlen = ffecom_get_invented_identifier ("__g77_%s",
- "length", -1);
+ tlen = ffecom_get_invented_identifier ("__g77_%s", "length");
tlen = build_decl (PARM_DECL, tlen, ffecom_f2c_ftnlen_type_node);
#if BUILT_FOR_270
DECL_ARTIFICIAL (tlen) = 1;
@@ -2841,8 +2840,7 @@ ffecom_do_entry_ (ffesymbol fn, int entrynum)
else
type = ffecom_tree_type[FFEINFO_basictypeCOMPLEX][kt];
- result = ffecom_get_invented_identifier ("__g77_%s",
- "result", -1);
+ result = ffecom_get_invented_identifier ("__g77_%s", "result");
/* Make length arg _and_ enhance type info for CHAR arg itself. */
@@ -2883,7 +2881,7 @@ ffecom_do_entry_ (ffesymbol fn, int entrynum)
yes = suspend_momentary ();
multi_retval = ffecom_get_invented_identifier ("__g77_%s",
- "multi_retval", -1);
+ "multi_retval");
multi_retval = build_decl (VAR_DECL, multi_retval,
ffecom_multi_type_node_);
multi_retval = start_decl (multi_retval, FALSE);
@@ -6042,8 +6040,7 @@ ffecom_f2c_make_type_ (tree *type, int tcode, const char *name)
}
pushdecl (build_decl (TYPE_DECL,
- ffecom_get_invented_identifier ("__g77_f2c_%s",
- name, -1),
+ ffecom_get_invented_identifier ("__g77_f2c_%s", name),
*type));
}
@@ -6340,8 +6337,7 @@ ffecom_gen_sfuncdef_ (ffesymbol s, ffeinfoBasictype bt, ffeinfoKindtype kt)
type = ffecom_tree_type[FFEINFO_basictypeCHARACTER][kt];
- result = ffecom_get_invented_identifier ("__g77_%s",
- "result", -1);
+ result = ffecom_get_invented_identifier ("__g77_%s", "result");
ffecom_char_enhance_arg_ (&type, s); /* Ignore returned length. */
@@ -7384,8 +7380,7 @@ ffecom_start_progunit_ ()
if (altentries)
{
id = ffecom_get_invented_identifier ("__g77_masterfun_%s",
- ffesymbol_text (fn),
- -1);
+ ffesymbol_text (fn));
}
#if FFETARGET_isENFORCED_MAIN
else if (main_program)
@@ -7420,8 +7415,7 @@ ffecom_start_progunit_ ()
ffecom_which_entrypoint_decl_
= build_decl (PARM_DECL,
ffecom_get_invented_identifier ("__g77_%s",
- "which_entrypoint",
- -1),
+ "which_entrypoint"),
integer_type_node);
push_parm_decl (ffecom_which_entrypoint_decl_);
}
@@ -7440,8 +7434,7 @@ ffecom_start_progunit_ ()
else
type = ffecom_multi_type_node_;
- result = ffecom_get_invented_identifier ("__g77_%s",
- "result", -1);
+ result = ffecom_get_invented_identifier ("__g77_%s", "result");
/* Make length arg _and_ enhance type info for CHAR arg itself. */
@@ -8605,8 +8598,7 @@ ffecom_sym_transform_assign_ (ffesymbol s)
t = build_decl (VAR_DECL,
ffecom_get_invented_identifier ("__g77_ASSIGN_%s",
- ffesymbol_text (s),
- -1),
+ ffesymbol_text (s)),
TREE_TYPE (null_pointer_node));
switch (ffesymbol_where (s))
@@ -8924,9 +8916,7 @@ ffecom_transform_equiv_ (ffestorag eqst)
eqt = build_decl (VAR_DECL,
ffecom_get_invented_identifier ("__g77_equiv_%s",
ffesymbol_text
- (ffestorag_symbol
- (eqst)),
- -1),
+ (ffestorag_symbol (eqst))),
eqtype);
DECL_EXTERNAL (eqt) = 0;
if (is_init
@@ -9010,7 +9000,7 @@ ffecom_transform_namelist_ (ffesymbol s)
nmlt = build_decl (VAR_DECL,
ffecom_get_invented_identifier ("__g77_namelist_%d",
- NULL, mynumber++),
+ mynumber++),
nmltype);
TREE_STATIC (nmlt) = 1;
DECL_INITIAL (nmlt) = error_mark_node;
@@ -9616,7 +9606,7 @@ ffecom_vardesc_ (ffebld expr)
var = build_decl (VAR_DECL,
ffecom_get_invented_identifier ("__g77_vardesc_%d",
- NULL, mynumber++),
+ mynumber++),
vardesctype);
TREE_STATIC (var) = 1;
DECL_INITIAL (var) = error_mark_node;
@@ -9723,8 +9713,7 @@ ffecom_vardesc_array_ (ffesymbol s)
TREE_CONSTANT (list) = 1;
TREE_STATIC (list) = 1;
- var = ffecom_get_invented_identifier ("__g77_vardesc_array_%d", NULL,
- mynumber++);
+ var = ffecom_get_invented_identifier ("__g77_vardesc_array_%d", mynumber++);
var = build_decl (VAR_DECL, var, item);
TREE_STATIC (var) = 1;
DECL_INITIAL (var) = error_mark_node;
@@ -9837,8 +9826,7 @@ ffecom_vardesc_dims_ (ffesymbol s)
TREE_CONSTANT (list) = 1;
TREE_STATIC (list) = 1;
- var = ffecom_get_invented_identifier ("__g77_dims_%d", NULL,
- mynumber++);
+ var = ffecom_get_invented_identifier ("__g77_dims_%d", mynumber++);
var = build_decl (VAR_DECL, var, item);
TREE_STATIC (var) = 1;
DECL_INITIAL (var) = error_mark_node;
@@ -11164,7 +11152,7 @@ ffecom_end_transition ()
var = build_decl (VAR_DECL,
ffecom_get_invented_identifier ("__g77_forceload_%d",
- NULL, number++),
+ number++),
dt);
DECL_EXTERNAL (var) = 0;
TREE_STATIC (var) = 1;
@@ -11453,59 +11441,24 @@ ffecom_finish_progunit ()
}
#endif
-/* Wrapper for get_identifier. pattern is sprintf-like, assumed to contain
- one %s if text is not NULL, assumed to contain one %d if number is
- not -1. If both are assumed, the %s is assumed to precede the %d. */
+
+/* Wrapper for get_identifier. pattern is sprintf-like. */
#if FFECOM_targetCURRENT == FFECOM_targetGCC
tree
-ffecom_get_invented_identifier (const char *pattern, const char *text,
- int number)
+ffecom_get_invented_identifier (const char *pattern, ...)
{
tree decl;
char *nam;
- mallocSize lenlen;
- char space[66];
-
- lenlen = 0;
- if (text)
- lenlen += strlen (text);
- if (number != -1)
- lenlen += 20;
- if (text || number != -1)
- {
- lenlen += strlen (pattern);
- if (lenlen > ARRAY_SIZE (space))
- nam = malloc_new_ks (malloc_pool_image (), pattern, lenlen);
- else
- nam = &space[0];
- }
- else
- {
- lenlen = 0;
- nam = (char *) pattern;
- }
-
- if (text == NULL)
- {
- if (number != -1)
- sprintf (&nam[0], pattern, number);
- }
- else
- {
- if (number == -1)
- sprintf (&nam[0], pattern, text);
- else
- sprintf (&nam[0], pattern, text, number);
- }
+ va_list ap;
+ va_start (ap, pattern);
+ if (vasprintf (&nam, pattern, ap) == 0)
+ abort ();
+ va_end (ap);
decl = get_identifier (nam);
-
- if (lenlen > ARRAY_SIZE (space))
- malloc_kill_ks (malloc_pool_image (), nam, lenlen);
-
+ free (nam);
IDENTIFIER_INVENTED (decl) = 1;
-
return decl;
}
@@ -12444,8 +12397,7 @@ ffecom_lookup_label (ffelab label)
glabel = build_decl (VAR_DECL,
ffecom_get_invented_identifier
- ("__g77_format_%d", NULL,
- (int) ffelab_value (label)),
+ ("__g77_format_%d", (int) ffelab_value (label)),
build_type_variant (build_array_type
(char_type_node,
NULL_TREE),
@@ -13578,7 +13530,6 @@ ffecom_temp_label ()
glabel = build_decl (LABEL_DECL,
ffecom_get_invented_identifier ("__g77_label_%d",
- NULL,
mynumber++),
void_type_node);
DECL_CONTEXT (glabel) = current_function_decl;