diff options
author | Tobias Burnus <burnus@net-b.de> | 2007-11-30 10:31:56 +0100 |
---|---|---|
committer | Tobias Burnus <burnus@gcc.gnu.org> | 2007-11-30 10:31:56 +0100 |
commit | e6ef7325b82cf4fd0fd431deada1b37e29542230 (patch) | |
tree | ff3798fc5a704430ba9eb2aed7a0a828e27a0e6c /gcc/fortran | |
parent | 89ab8ba092a961625a2b636d808db5af3f08f9cd (diff) | |
download | gcc-e6ef7325b82cf4fd0fd431deada1b37e29542230.zip gcc-e6ef7325b82cf4fd0fd431deada1b37e29542230.tar.gz gcc-e6ef7325b82cf4fd0fd431deada1b37e29542230.tar.bz2 |
re PR fortran/34186 (dump-parse-tree: ICE for ts->cl->length, if ts->cl == NULL)
2007-11-30 Tobias Burnus <burnus@net-b.de>
PR fortran/34186
* symbol.c (generate_isocbinding_symbol): Set string length.
* dump-parse-tree.c (gfc_show_attr): Show BIND(C) attribute.
* misc.c (gfc_basic_typename): Handle BT_VOID.
From-SVN: r130534
Diffstat (limited to 'gcc/fortran')
-rw-r--r-- | gcc/fortran/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/fortran/dump-parse-tree.c | 2 | ||||
-rw-r--r-- | gcc/fortran/misc.c | 3 | ||||
-rw-r--r-- | gcc/fortran/symbol.c | 2 |
4 files changed, 14 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 6aa5a35..6f23f68 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,10 @@ +2007-11-30 Tobias Burnus <burnus@net-b.de> + + PR fortran/34186 + * symbol.c (generate_isocbinding_symbol): Set string length. + * dump-parse-tree.c (gfc_show_attr): Show BIND(C) attribute. + * misc.c (gfc_basic_typename): Handle BT_VOID. + 2007-11-29 Steven G. Kargl <kargls@comcast.net> PR fortran/34230 diff --git a/gcc/fortran/dump-parse-tree.c b/gcc/fortran/dump-parse-tree.c index ce46e35..e1e463f7 100644 --- a/gcc/fortran/dump-parse-tree.c +++ b/gcc/fortran/dump-parse-tree.c @@ -582,6 +582,8 @@ gfc_show_attr (symbol_attribute *attr) gfc_status (" RESULT"); if (attr->entry) gfc_status (" ENTRY"); + if (attr->is_bind_c) + gfc_status (" BIND(C)"); if (attr->data) gfc_status (" DATA"); diff --git a/gcc/fortran/misc.c b/gcc/fortran/misc.c index 85f982d..4bc5c43 100644 --- a/gcc/fortran/misc.c +++ b/gcc/fortran/misc.c @@ -139,6 +139,9 @@ gfc_basic_typename (bt type) case BT_PROCEDURE: p = "PROCEDURE"; break; + case BT_VOID: + p = "VOID"; + break; case BT_UNKNOWN: p = "UNKNOWN"; break; diff --git a/gcc/fortran/symbol.c b/gcc/fortran/symbol.c index 8ef2b1d..a2bb43f 100644 --- a/gcc/fortran/symbol.c +++ b/gcc/fortran/symbol.c @@ -3810,6 +3810,8 @@ generate_isocbinding_symbol (const char *mod_name, iso_c_binding_symbol s, tmp_sym->value->value.character.string[0] = (char) c_interop_kinds_table[s].value; tmp_sym->value->value.character.string[1] = '\0'; + tmp_sym->value->ts.cl = gfc_get_charlen (); + tmp_sym->value->ts.cl->length = gfc_int_expr (1); /* May not need this in both attr and ts, but do need in attr for writing module file. */ |