From c1630d65d745a592779683d793933220559986d9 Mon Sep 17 00:00:00 2001 From: burnus Date: Wed, 10 Feb 2010 16:43:22 +0000 Subject: [PATCH] 2010-02-10 Tobias Burnus PR fortran/43015 * trans-decl.c (gfc_generate_function_code): Only check actual-vs.-dummy character bounds if not bind(C). 2010-02-10 Tobias Burnus PR fortran/43015 * gfortran.dg/bind_c_usage_20.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@156663 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/fortran/ChangeLog | 6 ++++++ gcc/fortran/trans-decl.c | 4 ++-- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gfortran.dg/bind_c_usage_20.f90 | 13 +++++++++++++ 4 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 gcc/testsuite/gfortran.dg/bind_c_usage_20.f90 diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 0e562a8f278..fc9a6410159 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2010-02-10 Tobias Burnus + + PR fortran/43015 + * trans-decl.c (gfc_generate_function_code): Only check + actual-vs.-dummy character bounds if not bind(C). + 2010-02-10 Jakub Jelinek PR fortran/42309 diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c index 062310af6af..34e153ae77b 100644 --- a/gcc/fortran/trans-decl.c +++ b/gcc/fortran/trans-decl.c @@ -1,5 +1,5 @@ /* Backend function setup - Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 + Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook @@ -4367,7 +4367,7 @@ gfc_generate_function_code (gfc_namespace * ns) /* If bounds-checking is enabled, generate code to check passed in actual arguments against the expected dummy argument attributes (e.g. string lengths). */ - if (gfc_option.rtcheck & GFC_RTCHECK_BOUNDS) + if ((gfc_option.rtcheck & GFC_RTCHECK_BOUNDS) && !sym->attr.is_bind_c) add_argument_checking (&body, sym); tmp = gfc_trans_code (ns->code); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 08299247a71..fdb07a6115e 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2010-02-10 Tobias Burnus + + PR fortran/43015 + * gfortran.dg/bind_c_usage_20.f90: New test. + 2010-02-10 Jakub Jelinek PR debug/43010 diff --git a/gcc/testsuite/gfortran.dg/bind_c_usage_20.f90 b/gcc/testsuite/gfortran.dg/bind_c_usage_20.f90 new file mode 100644 index 00000000000..0a6fa9e9afd --- /dev/null +++ b/gcc/testsuite/gfortran.dg/bind_c_usage_20.f90 @@ -0,0 +1,13 @@ +! { dg-do compile } +! { dg-options "-fcheck=bounds" } +! +! PR fortran/43015 +! +! Contributed by Dennis Wassel +! +SUBROUTINE foo(msg) BIND(C, name = "Foo") + USE, INTRINSIC :: iso_c_binding + IMPLICIT NONE + CHARACTER (KIND=C_CHAR), INTENT (out) :: msg(*) +END SUBROUTINE foo + -- 2.11.0