diff options
author | Tobias Burnus <burnus@net-b.de> | 2008-08-24 19:16:46 +0200 |
---|---|---|
committer | Tobias Burnus <burnus@gcc.gnu.org> | 2008-08-24 19:16:46 +0200 |
commit | 3a73a5409f193d56911728a6df552ec26c75a3ad (patch) | |
tree | 68396cfe33ea5ca4b99691d8c019ac84b7191117 /gcc/fortran/trans-expr.c | |
parent | 0dbca53731ccc8e6785b30ccb679bad2faa9ea2c (diff) | |
download | gcc-3a73a5409f193d56911728a6df552ec26c75a3ad.zip gcc-3a73a5409f193d56911728a6df552ec26c75a3ad.tar.gz gcc-3a73a5409f193d56911728a6df552ec26c75a3ad.tar.bz2 |
re PR fortran/37201 (ICE in in gfc_conv_string_parameter)
2008-08-24 Tobias Burnus <burnus@net-b.de>
PR fortran/37201
* trans-expr.c (gfc_conv_function_call): Add string_length
for character-returning bind(C) functions.
2008-08-24 Tobias Burnus <burnus@net-b.de>
PR fortran/37201
* gfortran.dg/bind_c_usage_17.f90: New.
* gfortran.dg/bind_c_usage_17_c.c: New.
From-SVN: r139537
Diffstat (limited to 'gcc/fortran/trans-expr.c')
-rw-r--r-- | gcc/fortran/trans-expr.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/fortran/trans-expr.c b/gcc/fortran/trans-expr.c index c85cbb2..e91434f 100644 --- a/gcc/fortran/trans-expr.c +++ b/gcc/fortran/trans-expr.c @@ -2677,7 +2677,9 @@ gfc_conv_function_call (gfc_se * se, gfc_symbol * sym, gfc_finish_interface_mapping (&mapping, &se->pre, &se->post); ts = sym->ts; - if (ts.type == BT_CHARACTER && !sym->attr.is_bind_c) + if (ts.type == BT_CHARACTER && sym->attr.is_bind_c) + se->string_length = build_int_cst (gfc_charlen_type_node, 1); + else if (ts.type == BT_CHARACTER) { if (sym->ts.cl->length == NULL) { |