aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gfortran.fortran-torture/execute/character_passing.f90
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gfortran.fortran-torture/execute/character_passing.f90')
-rw-r--r--gcc-4.9/gcc/testsuite/gfortran.fortran-torture/execute/character_passing.f9022
1 files changed, 22 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gfortran.fortran-torture/execute/character_passing.f90 b/gcc-4.9/gcc/testsuite/gfortran.fortran-torture/execute/character_passing.f90
new file mode 100644
index 000000000..af06a84e4
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gfortran.fortran-torture/execute/character_passing.f90
@@ -0,0 +1,22 @@
+! PR middle-end/20030
+! we were messing up the access in LSAME for
+! the character arguments.
+ program foo
+ character*1 a1, a2, b
+ logical LSAME, x
+ a1='A'
+ a2='A'
+ b='B'
+ x = LSAME(a1,a2)
+ if ( .not. x ) 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