From: Mark Mitchell Date: Thu, 19 Apr 2001 19:52:17 +0000 (+0000) Subject: toplev.h (struct lang_hooks): Allow decode_option to indicate that language-independe... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=57883c536c6b7c02f5a1af6dc734b8000ad170e2;p=gcc.git 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 --- 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 + * 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 + + * 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 * 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. */