diff options
author | Thomas Koenig <tkoenig@gcc.gnu.org> | 2011-08-29 09:05:11 +0000 |
---|---|---|
committer | Thomas Koenig <tkoenig@gcc.gnu.org> | 2011-08-29 09:05:11 +0000 |
commit | e7898e54f4dc9563328204d6e8b886982c9c3357 (patch) | |
tree | 1ab46c59fd14bef08ca5c2d0391ae644d39ae997 /gcc | |
parent | 4d59a001d319fe67785ec13d54dd58e0737d12b6 (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/widechar_compare_1.f90 | 10 |
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 |