aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Guenther <rguenth@gcc.gnu.org>2005-04-17 11:56:30 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2005-04-17 11:56:30 +0000
commita34938bea3d8eeb9bc673b39e6c140825e1cbecf (patch)
treef926b91f8476f6f75b7f2f5760cd828b24508fac /gcc
parent492f761a97ed76030567349ea2a0ad73c819a9f5 (diff)
downloadgcc-a34938bea3d8eeb9bc673b39e6c140825e1cbecf.zip
gcc-a34938bea3d8eeb9bc673b39e6c140825e1cbecf.tar.gz
gcc-a34938bea3d8eeb9bc673b39e6c140825e1cbecf.tar.bz2
scanner.c (gfc_next_char_literal): Reset truncation flag for lines ending in a comment for both fixed and free form.
2005-04-17 Richard Guenther <rguenth@gcc.gnu.org> * scanner.c (gfc_next_char_literal): Reset truncation flag for lines ending in a comment for both fixed and free form. (load_line): Do not set truncated flag if only truncating the EOL marker. * gfortran.dg/wtruncate.f: New testcase. * gfortran.dg/wtruncate.f90: New testcase. From-SVN: r98269
Diffstat (limited to 'gcc')
-rw-r--r--gcc/fortran/ChangeLog7
-rw-r--r--gcc/fortran/scanner.c10
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/wtruncate.f10
-rw-r--r--gcc/testsuite/gfortran.dg/wtruncate.f9010
5 files changed, 40 insertions, 2 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index b3f0b1c..5864697 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,10 @@
+2005-04-17 Richard Guenther <rguenth@gcc.gnu.org>
+
+ * scanner.c (gfc_next_char_literal): Reset truncation flag
+ for lines ending in a comment for both fixed and free form.
+ (load_line): Do not set truncated flag if only truncating
+ the EOL marker.
+
2005-04-15 Richard Guenther <rguenth@gcc.gnu.org>
PR fortran/14569
diff --git a/gcc/fortran/scanner.c b/gcc/fortran/scanner.c
index 5748ef3..69fa3a1 100644
--- a/gcc/fortran/scanner.c
+++ b/gcc/fortran/scanner.c
@@ -458,6 +458,9 @@ restart:
}
while (c != '\n');
+ /* Avoid truncation warnings for comment ending lines. */
+ gfc_current_locus.lb->truncated = 0;
+
goto done;
}
@@ -525,6 +528,9 @@ restart:
c = next_char ();
}
while (c != '\n');
+
+ /* Avoid truncation warnings for comment ending lines. */
+ gfc_current_locus.lb->truncated = 0;
}
if (c != '\n')
@@ -758,13 +764,13 @@ load_line (FILE * input, char **pbuf)
else if (i >= buflen)
{
/* Truncate the rest of the line. */
- trunc_flag = 1;
-
for (;;)
{
c = fgetc (input);
if (c == '\n' || c == EOF)
break;
+
+ trunc_flag = 1;
}
ungetc ('\n', input);
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index f9b274d..023ccdd 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2005-04-17 Richard Guenther <rguenth@gcc.gnu.org>
+
+ * gfortran.dg/wtruncate.f: New testcase.
+ * gfortran.dg/wtruncate.f90: New testcase.
+
2005-04-16 Mark Mitchell <mark@codesourcery.com>
PR c++/21025
diff --git a/gcc/testsuite/gfortran.dg/wtruncate.f b/gcc/testsuite/gfortran.dg/wtruncate.f
new file mode 100644
index 0000000..b7cac5d
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/wtruncate.f
@@ -0,0 +1,10 @@
+! { dg-do compile }
+! { dg-options "-Wall" }
+
+! This long comment line should not trigger a line-truncation warning with -Wall
+
+ PROGRAM foo
+ WRITE (*,*) "Test" ! Neither this comment which exceeds the 72 character limit, too
+ WRITE (*,*) "This exactly 72 character long soruce line not, too."
+ END
+
diff --git a/gcc/testsuite/gfortran.dg/wtruncate.f90 b/gcc/testsuite/gfortran.dg/wtruncate.f90
new file mode 100644
index 0000000..49b07d2
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/wtruncate.f90
@@ -0,0 +1,10 @@
+! { dg-do compile }
+! { dg-options "-Wall" }
+
+! This long comment line should not trigger a line-truncation warning with -Wall even for free-form 132 character line limit (blah blah)
+
+ PROGRAM foo
+ WRITE (*,*) "Test" ! Neither this comment which exceeds the 132 character limit with some random words, too (blah blah)
+ WRITE (*,*) "This exactly 132 character long soruce line not, too. How can people fill 132 characters without sensless stuff"
+ END
+