aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJerry DeLisle <jvdelisle@gcc.gnu.org>2008-04-14 00:43:32 +0000
committerJerry DeLisle <jvdelisle@gcc.gnu.org>2008-04-14 00:43:32 +0000
commitdfbfb6301cf57551b13e2db2c7eabc32b67c30ba (patch)
tree2db815be26d6bb01b303596a05c9f1e2c07423c3 /gcc
parente7d95f6fdaf08bdffbf63230063ad1fba98c071c (diff)
downloadgcc-dfbfb6301cf57551b13e2db2c7eabc32b67c30ba.zip
gcc-dfbfb6301cf57551b13e2db2c7eabc32b67c30ba.tar.gz
gcc-dfbfb6301cf57551b13e2db2c7eabc32b67c30ba.tar.bz2
re PR fortran/35882 (Miscounted continuation lines when interspersed with data)
2008-04-13 Jerry DeLisle <jvdelisle@gcc.gnu.org> Tobias Burnus <burnus@net-b.de> PR fortran/35882 * options.c (gfc_init_options): Set the default maximum continuation lines to 255 for both free and fixed form source for warnings. (gfc_handle_option): Set -std=f95 fixed form max continuations to 19 and the -std=f95 free form max continuations to 39 for warnings. * scanner.c (gfc_next_char_literal): Adjust the current_line number only if it is less than the current locus. Co-Authored-By: Tobias Burnus <burnus@net-b.de> From-SVN: r134251
Diffstat (limited to 'gcc')
-rw-r--r--gcc/fortran/ChangeLog11
-rw-r--r--gcc/fortran/options.c10
-rw-r--r--gcc/fortran/scanner.c3
3 files changed, 17 insertions, 7 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 7833747..a282623 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,14 @@
+2008-04-13 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+ Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/35882
+ * options.c (gfc_init_options): Set the default maximum continuation
+ lines to 255 for both free and fixed form source for warnings.
+ (gfc_handle_option): Set -std=f95 fixed form max continuations to 19 and
+ the -std=f95 free form max continuations to 39 for warnings.
+ * scanner.c (gfc_next_char_literal): Adjust the current_line number only
+ if it is less than the current locus.
+
2008-04-07 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/25829 28655
diff --git a/gcc/fortran/options.c b/gcc/fortran/options.c
index 5ccbc77..06a4622 100644
--- a/gcc/fortran/options.c
+++ b/gcc/fortran/options.c
@@ -58,8 +58,8 @@ gfc_init_options (unsigned int argc ATTRIBUTE_UNUSED,
gfc_option.source_form = FORM_UNKNOWN;
gfc_option.fixed_line_length = 72;
gfc_option.free_line_length = 132;
- gfc_option.max_continue_fixed = 19;
- gfc_option.max_continue_free = 39;
+ gfc_option.max_continue_fixed = 255;
+ gfc_option.max_continue_free = 255;
gfc_option.max_identifier_length = GFC_MAX_SYMBOL_LEN;
gfc_option.max_subrecord_length = 0;
gfc_option.convert = GFC_CONVERT_NATIVE;
@@ -733,6 +733,8 @@ gfc_handle_option (size_t scode, const char *arg, int value)
case OPT_std_f95:
gfc_option.allow_std = GFC_STD_F95_OBS | GFC_STD_F95 | GFC_STD_F77;
gfc_option.warn_std = GFC_STD_F95_OBS;
+ gfc_option.max_continue_fixed = 19;
+ gfc_option.max_continue_free = 39;
gfc_option.max_identifier_length = 31;
gfc_option.warn_ampersand = 1;
gfc_option.warn_tabs = 0;
@@ -742,8 +744,6 @@ gfc_handle_option (size_t scode, const char *arg, int value)
gfc_option.allow_std = GFC_STD_F95_OBS | GFC_STD_F77
| GFC_STD_F2003 | GFC_STD_F95;
gfc_option.warn_std = GFC_STD_F95_OBS;
- gfc_option.max_continue_fixed = 255;
- gfc_option.max_continue_free = 255;
gfc_option.max_identifier_length = 63;
gfc_option.warn_ampersand = 1;
gfc_option.warn_tabs = 0;
@@ -753,8 +753,6 @@ gfc_handle_option (size_t scode, const char *arg, int value)
gfc_option.allow_std = GFC_STD_F95_OBS | GFC_STD_F77
| GFC_STD_F2003 | GFC_STD_F95 | GFC_STD_F2008;
gfc_option.warn_std = GFC_STD_F95_OBS;
- gfc_option.max_continue_fixed = 255;
- gfc_option.max_continue_free = 255;
gfc_option.max_identifier_length = 63;
gfc_option.warn_ampersand = 1;
gfc_option.warn_tabs = 0;
diff --git a/gcc/fortran/scanner.c b/gcc/fortran/scanner.c
index 872f350..dcdac64 100644
--- a/gcc/fortran/scanner.c
+++ b/gcc/fortran/scanner.c
@@ -821,7 +821,8 @@ restart:
"statement at %C", gfc_option.max_continue_free);
}
}
- continue_line = gfc_linebuf_linenum (gfc_current_locus.lb);
+ if (continue_line < gfc_linebuf_linenum (gfc_current_locus.lb))
+ continue_line = gfc_linebuf_linenum (gfc_current_locus.lb);
/* Now find where it continues. First eat any comment lines. */
openmp_cond_flag = skip_free_comments ();