toplev.h (struct lang_hooks): Allow decode_option to indicate that language-independent processing should not...

* 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.

From-SVN: r41427
This commit is contained in:
Mark Mitchell 2001-04-19 19:52:17 +00:00 committed by Mark Mitchell
parent 13c502cdd5
commit 57883c536c
5 changed files with 36 additions and 10 deletions

View File

@ -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.

View File

@ -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.

View File

@ -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;
}

View File

@ -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);

View File

@ -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. */