summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>2001-04-19 19:52:17 +0000
committermmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>2001-04-19 19:52:17 +0000
commit65fd03c09718899ae351d9eca6b717b3a0f959c7 (patch)
tree98b8cfe356888710abb3c4f2fda98fb972bae195
parent41441b595a9bffbf63a6da9fb6a9c050817a38de (diff)
downloadgcc-65fd03c09718899ae351d9eca6b717b3a0f959c7.tar.gz
* toplev.h (struct lang_hooks): Allow decode_option to indicate
that language-independent processing should not be done. * toplev.c (main): Adjust accordingly. * top.c (ffe_decode_option): Do not permit language-independent processing for -ffixed-line-length. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@41427 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/f/ChangeLog5
-rw-r--r--gcc/f/top.c12
-rw-r--r--gcc/toplev.c18
-rw-r--r--gcc/toplev.h7
5 files changed, 36 insertions, 10 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index cfd394e783e..22dbfba9c39 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,9 @@
2001-04-19 Mark Mitchell <mark@codesourcery.com>
+ * toplev.h (struct lang_hooks): Allow decode_option to indicate
+ that language-independent processing should not be done.
+ * toplev.c (main): Adjust accordingly.
+
* rtl.texi (jump_insn): Expand on JUMP_LABEL documentation.
* loop.c (load_mems): Handle a NULL JUMP_LABEL for a JUMP_INSN.
diff --git a/gcc/f/ChangeLog b/gcc/f/ChangeLog
index cae6cb242c4..3bd17324c12 100644
--- a/gcc/f/ChangeLog
+++ b/gcc/f/ChangeLog
@@ -1,3 +1,8 @@
+Thu Apr 19 12:49:24 2001 Mark Mitchell <mark@codesourcery.com>
+
+ * top.c (ffe_decode_option): Do not permit language-independent
+ processing for -ffixed-line-length.
+
Thu Apr 12 17:57:55 2001 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* bad.c (inhibit_warnings): Delete redundant declaration.
diff --git a/gcc/f/top.c b/gcc/f/top.c
index 6eba5c98bb4..9675989e210 100644
--- a/gcc/f/top.c
+++ b/gcc/f/top.c
@@ -1,5 +1,5 @@
/* top.c -- Implementation File (module.c template V1.0)
- Copyright (C) 1995, 1996, 1997, 1999 Free Software Foundation, Inc.
+ Copyright (C) 1995, 1996, 1997, 1999, 2001 Free Software Foundation, Inc.
Contributed by James Craig Burley.
This file is part of GNU Fortran.
@@ -464,9 +464,15 @@ ffe_decode_option (argc, argv)
char *len = &opt[2] + strlen ("fixed-line-length-");
if (strcmp (len, "none") == 0)
- ffe_set_fixed_line_length (0);
+ {
+ ffe_set_fixed_line_length (0);
+ return -1;
+ }
else if (ffe_is_digit_string_ (len))
- ffe_set_fixed_line_length (atol (len));
+ {
+ ffe_set_fixed_line_length (atol (len));
+ return -1;
+ }
else
return 0;
}
diff --git a/gcc/toplev.c b/gcc/toplev.c
index 66cada9a5b0..9bc38063152 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -4778,16 +4778,22 @@ toplev_main (argc, argv)
/* Perform normal command line switch decoding. */
for (i = 1; i < argc;)
{
- unsigned int lang_processed;
- unsigned int indep_processed;
+ int lang_processed;
+ int indep_processed;
/* Give the language a chance to decode the option for itself. */
lang_processed = (*lang_hooks.decode_option) (argc - i, argv + i);
- /* Now see if the option also has a language independent meaning.
- Some options are both language specific and language independent,
- eg --help. */
- indep_processed = independent_decode_option (argc - i, argv + i);
+ if (lang_processed >= 0)
+ /* Now see if the option also has a language independent meaning.
+ Some options are both language specific and language independent,
+ eg --help. */
+ indep_processed = independent_decode_option (argc - i, argv + i);
+ else
+ {
+ lang_processed = -lang_processed;
+ indep_processed = 0;
+ }
if (lang_processed || indep_processed)
i += MAX (lang_processed, indep_processed);
diff --git a/gcc/toplev.h b/gcc/toplev.h
index edf7e0242e0..1f8f7d02e37 100644
--- a/gcc/toplev.h
+++ b/gcc/toplev.h
@@ -154,7 +154,12 @@ struct lang_hooks
single option (typically starting with -f or -W or +). It should
return the number of command-line arguments it uses if it handles
the option, or 0 and not complain if it does not recognise the
- option. This hook cannot be NULL. */
+ option. If this function returns a negative number, then its
+ absolute value is the number of command-line arguments used, but,
+ in addition, no language-independent option processing should be
+ done for this option.
+
+ This hook cannot be NULL. */
int (*decode_option) PARAMS ((int, char **));
/* Called when all command line options have been processed. */