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