Hi Paul, thanks for the patch.
On 10.11.20 14:25, Paul Richard Thomas via Fortran wrote:
...
unlimited_polymorphic_32.f03:
if (any (z .ne. [42_4, 43_4])) stop 1 + idx
If you already use an offset for the stop codes, can you enumerate those? Currently all are 'stop 1'. In resolve.c: Typo 'ie.' → 'i.e.' (or, if really needed: 'ie')
+ temporary; ie. the rhs of the assignment. */
+get_class_info_from_ss (stmtblock_t * pre, gfc_ss *ss, tree *eltype) ... + /* lhs is class and rhs is intrinsic or derived type. */ ... + if (unlimited_lhs) + { + tmp = gfc_class_len_get (lhs_class_expr); + if (rhs_ss->info + && rhs_ss->info->expr + && rhs_ss->info->expr->ts.type == BT_CHARACTER) + tmp2 = build_int_cst (TREE_TYPE (tmp), + rhs_ss->info->expr->ts.kind);
The last part looks incomplete. Unless I am mistaken: The length for BT_CHARACTER is the character kind times the string length, not just the character kind. Otherwise: LGTM, but I do not want to rule out that I missed something! Tobias ----------------- Mentor Graphics (Deutschland) GmbH, Arnulfstraße 201, 80634 München / Germany Registergericht München HRB 106955, Geschäftsführer: Thomas Heurung, Alexander Walter