diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c95413e879f..86cca6d50a1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Tue Feb 2 22:38:19 1999 Theodore Papadopoulo + + * toplev.h (read_integral_parameter): Declare. + * toplev.c (read_integral_parameter): New function. + Fri Jan 29 21:00:56 1999 Bob Manson * resource.c, resource.h: New files. diff --git a/gcc/toplev.c b/gcc/toplev.c index c23292842c6..33fa3097fb0 100644 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -1244,6 +1244,33 @@ FILE *asm_out_file; FILE *aux_info_file; FILE *rtl_dump_file = NULL; +/* Decode the string P as an integral parameter. + If the string is indeed an integer return its numeric value else + issue an Invalid Option error for the option PNAME and return DEFVAL. */ + +int +read_integral_parameter (p, pname, defval) + char *p; + char *pname; + int defval; +{ + char *endp = p; + + while (*endp) + { + if (*endp >= '0' && *endp <= '9') + endp++; + else + { + error ("Invalid option `%s'", pname); + return defval; + } + } + + return atoi (p); +} + + /* Time accumulators, to count the total time spent in various passes. */ int parse_time; diff --git a/gcc/toplev.h b/gcc/toplev.h index 1622a64662b..1363519cc42 100644 --- a/gcc/toplev.h +++ b/gcc/toplev.h @@ -26,6 +26,7 @@ union tree_node; struct rtx_def; #endif +extern int read_integral_parameter PROTO ((char *, char *, int)); extern int count_error PROTO ((int)); extern void strip_off_ending PROTO ((char *, int)); extern void print_time PROTO ((const char *, int));