aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorThomas Koenig <Thomas.Koenig@online.de>2007-01-14 11:01:20 +0000
committerThomas Koenig <tkoenig@gcc.gnu.org>2007-01-14 11:01:20 +0000
commit16a374c6c83b84fa5003931e7fa94cdc8a734830 (patch)
tree3a72ff90a8656267938a29f300437afce402dfbb /gcc
parent326648f1bd78bfa613ff589bbc28797f3c86b464 (diff)
downloadgcc-16a374c6c83b84fa5003931e7fa94cdc8a734830.zip
gcc-16a374c6c83b84fa5003931e7fa94cdc8a734830.tar.gz
gcc-16a374c6c83b84fa5003931e7fa94cdc8a734830.tar.bz2
re PR fortran/30452 ([4.2, 4.1 only] Strange syntax error with high-value character)
2007-01-14 Thomas Koenig <Thomas.Koenig@online.de> PR fortran/30452 * scanner.c(next_char): Cast next character to unsigned to avoid confusion with error return codes. 2007-01-14 Thomas Koenig <Thomas.Koenig@online.de> PR fortran/30452 * gfortran.dg/string_0xfe_0xff_1.f90: New test. From-SVN: r120768
Diffstat (limited to 'gcc')
-rw-r--r--gcc/fortran/scanner.c2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/string_0xfe_0xff_1.f907
3 files changed, 13 insertions, 1 deletions
diff --git a/gcc/fortran/scanner.c b/gcc/fortran/scanner.c
index d97d585..4949fe6 100644
--- a/gcc/fortran/scanner.c
+++ b/gcc/fortran/scanner.c
@@ -345,7 +345,7 @@ next_char (void)
if (gfc_current_locus.nextc == NULL)
return '\n';
- c = *gfc_current_locus.nextc++;
+ c = (unsigned char) *gfc_current_locus.nextc++;
if (c == '\0')
{
gfc_current_locus.nextc--; /* Remain on this line. */
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 7c3b769..ce42aaa 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-01-14 Thomas Koenig <Thomas.Koenig@online.de>
+
+ PR fortran/30452
+ * gfortran.dg/string_0xfe_0xff_1.f90: New test.
+
2007-01-13 Zdenek Dvorak <dvorakz@suse.cz>
* gcc.dg/20070112-1.c: New test.
diff --git a/gcc/testsuite/gfortran.dg/string_0xfe_0xff_1.f90 b/gcc/testsuite/gfortran.dg/string_0xfe_0xff_1.f90
new file mode 100644
index 0000000..e3ea042
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/string_0xfe_0xff_1.f90
@@ -0,0 +1,7 @@
+! { dg-do compile }
+! PR 30452 - this used to cause syntax errors due to the presence,
+! as characters, of bytes 0xfe and 0xff.
+program main
+ if (char (254) /= "þ") call abort
+ if (achar (255) /= "ÿ") call abort
+end program main