aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.fortran-torture/execute/character_passing.f90
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gfortran.fortran-torture/execute/character_passing.f90')
-rw-r--r--gcc/testsuite/gfortran.fortran-torture/execute/character_passing.f9021
1 files changed, 21 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.fortran-torture/execute/character_passing.f90 b/gcc/testsuite/gfortran.fortran-torture/execute/character_passing.f90
new file mode 100644
index 00000000000..ade7f9d0c29
--- /dev/null
+++ b/gcc/testsuite/gfortran.fortran-torture/execute/character_passing.f90
@@ -0,0 +1,21 @@
+! PR middle-end/20030
+! we were messing up the access in LSAME for
+! the character agruments.
+ program foo
+ character*1 a1, a2, b
+ a1='A'
+ a2='A'
+ b='B'
+ x = LSAME(a1,a2)
+ if ( x.ne.1 ) then
+ call abort ();
+ endif
+ end
+
+ logical function LSAME( CA, CB )
+ character CA, CB
+ integer INTA, INTB
+ INTA = ICHAR( CA )
+ INTB = ICHAR( CB )
+ LSAME = INTA.EQ.INTB
+ end