[patch] pr 21302 Max line length in free form mode
Bernhard Fischer
rep.nop@aon.at
Wed Aug 10 15:35:00 GMT 2005
On Mon, Aug 08, 2005 at 02:14:42PM -0700, Steve Kargl wrote:
>On Mon, Aug 08, 2005 at 09:23:07AM +0200, Bernhard Fischer wrote:
>> + if (gfc_option.fixed_line_length == 72) /* default */
>> + maxlen = GFC_MAX_LINE;
>Unless I misunderstand the above, the following
>
> gfortran -ffixed_line_length=72 test.f90
>
>will use GFC_MAX_LINE, which is 132 (not the requested
>length of 72).
right. Corrected patch attached.
gcc-line-length.diff:
PR 21302
* gcc/fortran/options.c: initialize fixed_line_length to -1.
* gcc/fortran/scanner.c (load_line): default fixed_line_length
to GFC_MAX_LINE for FORM_FREE else default to 72. If a line
length was given, use it.
Perhaps also check that the line-length given is not too big?
Something like
gcc-line-length-max.diff:
* gcc/fortran/options.c: make sure that -ffixed-line-length
is less than 1048577.
ok?
--
Bernhard
-------------- next part --------------
Index: gcc/fortran/options.c
===================================================================
RCS file: /cvsroot/gcc/gcc/gcc/fortran/options.c,v
retrieving revision 1.22
diff -u -p -r1.22 options.c
--- gcc/fortran/options.c 25 Jun 2005 00:40:35 -0000 1.22
+++ gcc/fortran/options.c 10 Aug 2005 13:20:22 -0000
@@ -45,7 +45,7 @@ gfc_init_options (unsigned int argc ATTR
gfc_option.source = NULL;
gfc_option.module_dir = NULL;
gfc_option.source_form = FORM_UNKNOWN;
- gfc_option.fixed_line_length = 72;
+ gfc_option.fixed_line_length = -1;
gfc_option.max_identifier_length = GFC_MAX_SYMBOL_LEN;
gfc_option.verbose = 0;
Index: gcc/fortran/scanner.c
===================================================================
RCS file: /cvsroot/gcc/gcc/gcc/fortran/scanner.c,v
retrieving revision 1.23
diff -u -p -r1.23 scanner.c
--- gcc/fortran/scanner.c 9 Aug 2005 08:08:28 -0000 1.23
+++ gcc/fortran/scanner.c 10 Aug 2005 13:20:22 -0000
@@ -690,8 +690,11 @@ load_line (FILE * input, char **pbuf, in
char *buffer;
/* Determine the maximum allowed line length. */
- if (gfc_current_form == FORM_FREE)
- maxlen = GFC_MAX_LINE;
+ if (gfc_option.fixed_line_length == -1)
+ if (gfc_current_form == FORM_FREE)
+ maxlen = GFC_MAX_LINE;
+ else
+ maxlen = 72; /* GFC_DEFAULT_LINE */
else
maxlen = gfc_option.fixed_line_length;
-------------- next part --------------
Index: gcc/fortran/options.c
===================================================================
RCS file: /cvsroot/gcc/gcc/gcc/fortran/options.c,v
retrieving revision 1.22
diff -u -p -r1.22 options.c
--- gcc/fortran/options.c 25 Jun 2005 00:40:35 -0000 1.22
+++ gcc/fortran/options.c 10 Aug 2005 14:51:53 -0000
@@ -289,6 +289,9 @@ gfc_handle_option (size_t scode, const c
case OPT_ffixed_line_length_:
if (value != 0 && value < 7)
gfc_fatal_error ("Fixed line length must be at least seven.");
+ else
+ if (value > 1048576)
+ gfc_fatal_error ("Fixed line length must be at most 1048576.");
gfc_option.fixed_line_length = value;
break;
More information about the Gcc-patches
mailing list