aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorThomas Koenig <tkoenig@gcc.gnu.org>2011-08-29 09:05:11 +0000
committerThomas Koenig <tkoenig@gcc.gnu.org>2011-08-29 09:05:11 +0000
commite7898e54f4dc9563328204d6e8b886982c9c3357 (patch)
tree1ab46c59fd14bef08ca5c2d0391ae644d39ae997 /gcc
parent4d59a001d319fe67785ec13d54dd58e0737d12b6 (diff)
downloadgcc-e7898e54f4dc9563328204d6e8b886982c9c3357.zip
gcc-e7898e54f4dc9563328204d6e8b886982c9c3357.tar.gz
gcc-e7898e54f4dc9563328204d6e8b886982c9c3357.tar.bz2
re PR libfortran/50192 (Wrong character comparision with wide strings)
2011-08-29 Thomas Koenig <tkoenig@gcc.gnu.org> PR libfortran/50192 * intrinsics/string_intrinsics.c (memcmp_char4): New function. * intrinsics/string_intrinsics_inc.c: New macro MEMCMP, either set to memcmp or memcmp_char4. (compare_string): Use MEMCMP, with correct size for it. * libgfortran.h: Add prototype for memcmp_char4. 2011-08-29 Thomas Koenig <tkoenig@gcc.gnu.org> PR libfortran/50192 * gfortran.dg/widechar_compare_1.f90: New test. From-SVN: r178173
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/widechar_compare_1.f9010
2 files changed, 15 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 03a45a4..7c6f93f 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2011-08-29 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR libfortran/50192
+ * gfortran.dg/widechar_compare_1.f90: New test.
+
2011-08-26 Jason Merrill <jason@redhat.com>
Core DR 342
diff --git a/gcc/testsuite/gfortran.dg/widechar_compare_1.f90 b/gcc/testsuite/gfortran.dg/widechar_compare_1.f90
new file mode 100644
index 0000000..4410110
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/widechar_compare_1.f90
@@ -0,0 +1,10 @@
+! { dg-do run }
+! PR 50192 - on little-endian systems, this used to fail.
+program main
+ character(kind=4,len=2) :: c1, c2
+ c1 = 4_' '
+ c2 = 4_' '
+ c1(1:1) = transfer(257, mold=c1(1:1))
+ c2(1:1) = transfer(64, mold=c2(1:1))
+ if (c1 < c2) call abort
+end program main