aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/f/ChangeLog6
-rw-r--r--gcc/f/com.c7
-rw-r--r--gcc/f/parse.c17
-rw-r--r--gcc/f/top.c5
-rw-r--r--gcc/f/top.h2
5 files changed, 27 insertions, 10 deletions
diff --git a/gcc/f/ChangeLog b/gcc/f/ChangeLog
index 98fdfd7..4f259ea 100644
--- a/gcc/f/ChangeLog
+++ b/gcc/f/ChangeLog
@@ -1,3 +1,9 @@
+Wed Jun 10 13:17:32 1998 Dave Brolley <brolley@cygnus.com>
+
+ * top.h (ffe_decode_option): New argc/argv interface.
+ * top.c (ffe_decode_option): New argc/argv interface.
+ * parse.c (yyparse): New argc/argv interface for ffe_decode_option.
+ * com.c (lang_decode_option): New argc/argv interface.
Mon Jun 1 19:37:42 1998 Craig Burley <burley@gnu.org>
* com.c (ffecom_init_0): Fix setup of INTEGER(KIND=7)
diff --git a/gcc/f/com.c b/gcc/f/com.c
index 85c9f5b..512e926 100644
--- a/gcc/f/com.c
+++ b/gcc/f/com.c
@@ -14904,10 +14904,11 @@ insert_block (block)
}
int
-lang_decode_option (p)
- char *p;
+lang_decode_option (argc, argv)
+ int argc;
+ char **argv;
{
- return ffe_decode_option (p);
+ return ffe_decode_option (argc, argv);
}
/* used by print-tree.c */
diff --git a/gcc/f/parse.c b/gcc/f/parse.c
index 1efdc77..a25a9ec 100644
--- a/gcc/f/parse.c
+++ b/gcc/f/parse.c
@@ -52,11 +52,18 @@ yyparse ()
#if FFECOM_targetCURRENT == FFECOM_targetFFE
ffe_init_0 ();
- for (--argc, ++argv; argc > 0; --argc, ++argv)
- {
- if (!ffe_decode_option (argv[0]))
- fprintf (stderr, "Unrecognized option: %s\n", argv[0]);
- }
+ {
+ int strings_processed;
+ for (--argc, ++argv; argc > 0; argc -= strings_processed, argv += strings_processed)
+ {
+ strings_processed = ffe_decode_option (argc, argv);
+ if (strings_processed == 0)
+ {
+ fprintf (stderr, "Unrecognized option: %s\n", argv[0]);
+ strings_processed = 1;
+ }
+ }
+ }
#elif FFECOM_targetCURRENT == FFECOM_targetGCC
if (!ffe_is_pedantic ())
ffe_set_is_pedantic (pedantic);
diff --git a/gcc/f/top.c b/gcc/f/top.c
index bbcc59d..c93ffd3 100644
--- a/gcc/f/top.c
+++ b/gcc/f/top.c
@@ -160,8 +160,11 @@ ffe_is_digit_string_ (char *s)
recognized and handled. */
int
-ffe_decode_option (char *opt)
+ffe_decode_option (argc, argv)
+ int argc;
+ char **argv;
{
+ char *opt = argv[0];
if (opt[0] != '-')
return 0;
if (opt[1] == 'f')
diff --git a/gcc/f/top.h b/gcc/f/top.h
index 7ecf998..0e159ce 100644
--- a/gcc/f/top.h
+++ b/gcc/f/top.h
@@ -141,7 +141,7 @@ extern bool ffe_in_4;
/* Declare functions with prototypes. */
-int ffe_decode_option (char *opt);
+int ffe_decode_option (int argc, char **argv);
void ffe_file (ffewhereFile wf, FILE *f);
void ffe_init_0 (void);
void ffe_init_1 (void);