From: Jerry DeLisle Date: Tue, 1 Sep 2009 03:02:07 +0000 (+0000) Subject: re PR fortran/39229 (No warning of truncated lines if a continuation line follows) X-Git-Tag: releases/gcc-4.5.0~3756 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9cd38d51e8bd13ccb1433cc920dc29b66820bc09;p=thirdparty%2Fgcc.git re PR fortran/39229 (No warning of truncated lines if a continuation line follows) 2009-08-31 Jerry DeLisle PR fortran/39229 * scanner.c (next_char): Fix typo in comment. (gfc_get_char_literal): Warn if truncate flag is set for both fixed and free form source, adjusting error locus as needed. * parse.c (next_fixed): Clear the truncate flag. (next_statement): Remove truncate warning. From-SVN: r151258 --- diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index e5a673ab2db0..f690ab1b6d9f 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,12 @@ +2009-08-31 Jerry DeLisle + + PR fortran/39229 + * scanner.c (next_char): Fix typo in comment. + (gfc_get_char_literal): Warn if truncate flag is set for both fixed and + free form source, adjusting error locus as needed. + * parse.c (next_fixed): Clear the truncate flag. + (next_statement): Remove truncate warning. + 2009-08-31 Janus Weil Paul Thomas @@ -96,10 +105,10 @@ (gfc_find_typebound_intrinsic_op): Ditto. (gfc_find_typebound_proc), (gfc_find_typebound_user_op): New locus arg. -2009-08-22 Bud Davis +2009-08-22 Bud Davis PR fortran/28093 - * io.c: reverted previous patch + * io.c: reverted previous patch. 2009-08-25 Janne Blomqvist @@ -175,7 +184,7 @@ allocation-object are conformable. (gfc_match_allocate): Use new functions. Match SOURCE= tag. -2009-08-22 Bud Davis +2009-08-22 Bud Davis PR fortran/28093 * io.c : added variable to store original len of fmt diff --git a/gcc/fortran/parse.c b/gcc/fortran/parse.c index 2552fcd67886..e7439892f158 100644 --- a/gcc/fortran/parse.c +++ b/gcc/fortran/parse.c @@ -849,6 +849,8 @@ next_fixed (void) blank_line: if (digit_flag) gfc_warning ("Ignoring statement label in empty statement at %C"); + + gfc_current_locus.lb->truncated = 0; gfc_advance_line (); return ST_NONE; } @@ -862,6 +864,7 @@ next_statement (void) { gfc_statement st; locus old_locus; + gfc_new_block = NULL; gfc_current_ns->old_cl_list = gfc_current_ns->cl_list; @@ -871,14 +874,7 @@ next_statement (void) gfc_buffer_error (1); if (gfc_at_eol ()) - { - if ((gfc_option.warn_line_truncation || gfc_current_form == FORM_FREE) - && gfc_current_locus.lb - && gfc_current_locus.lb->truncated) - gfc_warning_now ("Line truncated at %C"); - - gfc_advance_line (); - } + gfc_advance_line (); gfc_skip_comments (); diff --git a/gcc/fortran/scanner.c b/gcc/fortran/scanner.c index 8cbb3c55b5c9..711042ddcb25 100644 --- a/gcc/fortran/scanner.c +++ b/gcc/fortran/scanner.c @@ -614,7 +614,7 @@ next_char (void) /* Skip a comment. When we come here the parse pointer is positioned immediately after the comment character. If we ever implement - compiler directives withing comments, here is where we parse the + compiler directives within comments, here is where we parse the directive. */ static void @@ -1080,6 +1080,17 @@ restart: } } + /* Check to see if the continuation line was truncated. */ + if (gfc_option.warn_line_truncation && gfc_current_locus.lb != NULL + && gfc_current_locus.lb->truncated) + { + int maxlen = gfc_option.free_line_length; + gfc_current_locus.lb->truncated = 0; + gfc_current_locus.nextc += maxlen; + gfc_warning_now ("Line truncated at %L", &gfc_current_locus); + gfc_current_locus.nextc -= maxlen; + } + /* Now find where it continues. First eat any comment lines. */ openmp_cond_flag = skip_free_comments (); @@ -1158,6 +1169,14 @@ restart: if (c != '\n') goto done; + /* Check to see if the continuation line was truncated. */ + if (gfc_option.warn_line_truncation && gfc_current_locus.lb != NULL + && gfc_current_locus.lb->truncated) + { + gfc_current_locus.lb->truncated = 0; + gfc_warning_now ("Line truncated at %L", &gfc_current_locus); + } + prev_openmp_flag = openmp_flag; continue_flag = 1; old_loc = gfc_current_locus;