aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/trans-decl.c
diff options
context:
space:
mode:
authorTobias Burnus <burnus@net-b.de>2007-11-22 09:55:47 +0000
committerTobias Burnus <burnus@net-b.de>2007-11-22 09:55:47 +0000
commit1a71a4f1afa1f0931e02d20849c6911b870f53c0 (patch)
tree8a9a62e34f11f58333d3069ebae8246ca7489e01 /gcc/fortran/trans-decl.c
parentd97a7c1f9e898a185368b6d67284398336e109b7 (diff)
2007-11-22 Tobias Burnus <burnus@net-b.de>
PR fortran/34079 * trans-expr.c (gfc_conv_function_call): Do not append string length arguments when calling bind(c) procedures. * trans-decl.c (create_function_arglist): Do not append string length arguments when declaring bind(c) procedures. 2007-11-22 Tobias Burnus <burnus@net-b.de> PR fortran/34079 * gfortran.dg/bind_c_usage_10.f03: Remove .mod file afterwards. * gfortran.dg/bind_c_usage_13.f03: New. * gfortran.dg/bind_c_usage_14.f03: New. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@130346 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/fortran/trans-decl.c')
-rw-r--r--gcc/fortran/trans-decl.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c
index 4b114df728b..3a3897377cd 100644
--- a/gcc/fortran/trans-decl.c
+++ b/gcc/fortran/trans-decl.c
@@ -1535,8 +1535,10 @@ create_function_arglist (gfc_symbol * sym)
typelist = TREE_CHAIN (typelist);
}
- /* Add the hidden string length parameters. */
- arglist = chainon (arglist, hidden_arglist);
+ /* Add the hidden string length parameters, unless the procedure
+ is bind(C). */
+ if (!sym->attr.is_bind_c)
+ arglist = chainon (arglist, hidden_arglist);
gcc_assert (hidden_typelist == NULL_TREE
|| TREE_VALUE (hidden_typelist) == void_type_node);