aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.fortran-torture
diff options
context:
space:
mode:
authorDaniel Kraft <d@domob.eu>2009-04-11 18:44:37 +0200
committerDaniel Kraft <domob@gcc.gnu.org>2009-04-11 18:44:37 +0200
commitcadb8f42464b17b8dff55942d00378b1d8a1a979 (patch)
treed9c8e4e6f33f22a9ccaeca5a72eb199f6b40e246 /gcc/testsuite/gfortran.fortran-torture
parentd1e49db44333c8a937beebeb21e3c33be60ec162 (diff)
downloadgcc-cadb8f42464b17b8dff55942d00378b1d8a1a979.zip
gcc-cadb8f42464b17b8dff55942d00378b1d8a1a979.tar.gz
gcc-cadb8f42464b17b8dff55942d00378b1d8a1a979.tar.bz2
re PR fortran/37746 (bounds check of string dummy arguments)
2009-04-11 Daniel Kraft <d@domob.eu> PR fortran/37746 * gfortran.h (struct gfc_charlen): New field `passed_length' to store the actual passed string length for dummy arguments. * trans-decl.c (gfc_create_string_length): Formatting fixes and added assertion, moved a local variable into the innermost block it is needed. (create_function_arglist): Removed TODO about the check being implemented and initialize cl->passed_length here. (add_argument_checking): New method. (gfc_generate_function_code): Call the argument checking method. 2009-04-11 Daniel Kraft <d@domob.eu> PR fortran/37746 * gfortran.dg/bounds_check_strlen_1.f90: New test. * gfortran.dg/bounds_check_strlen_2.f90: New test. * gfortran.dg/bounds_check_strlen_3.f90: New test. * gfortran.dg/bounds_check_strlen_4.f90: New test. * gfortran.dg/bounds_check_strlen_5.f90: New test. * gfortran.dg/bounds_check_strlen_6.f90: New test. * gfortran.dg/bounds_check_strlen_7.f90: New test. * gfortran.fortran-torture/execute/intrinsic_index.f90: Fix wrong expected string length that failed with -fbounds-check now. * gfortran.fortran-torture/execute/intrinsic_trim.f90: Ditto. From-SVN: r145958
Diffstat (limited to 'gcc/testsuite/gfortran.fortran-torture')
-rw-r--r--gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_index.f902
-rw-r--r--gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_trim.f902
2 files changed, 2 insertions, 2 deletions
diff --git a/gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_index.f90 b/gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_index.f90
index 9b18177..76f0aae 100644
--- a/gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_index.f90
+++ b/gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_index.f90
@@ -8,7 +8,7 @@ program test
end
function w(str)
- character(len=8) str
+ character(len=7) str
integer w
w = index(str, "R")
end
diff --git a/gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_trim.f90 b/gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_trim.f90
index 90e4131..d57610c 100644
--- a/gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_trim.f90
+++ b/gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_trim.f90
@@ -3,7 +3,7 @@ program intrinsic_trim
character(len=8) a
character(len=4) b,work
a='1234 '
- b=work(9,a)
+ b=work(8,a)
if (llt(b,"1234")) call abort()
a=' '
b=trim(a)