{
/* Lower bound is implicit. */
FORWARD (q);
- if (IS (q, AT_SYMBOL))
- {
- /* Upper bound is implicit, AT specified. */
- gcc_assert (IS (q, AT_SYMBOL));
- at = save_expr (fold_convert (ssizetype, a68_lower_tree (NEXT (q), ctx)));
- }
- else
+ if (q != NO_NODE)
{
- upper_bound
- = save_expr (fold_convert (ssizetype, a68_lower_tree (q, ctx)));
- FORWARD (q);
- if (q != NO_NODE)
+ if (IS (q, AT_SYMBOL))
{
+ /* Upper bound is implicit, AT specified. */
gcc_assert (IS (q, AT_SYMBOL));
at = save_expr (fold_convert (ssizetype, a68_lower_tree (NEXT (q), ctx)));
}
+ else
+ {
+ upper_bound
+ = save_expr (fold_convert (ssizetype, a68_lower_tree (q, ctx)));
+ FORWARD (q);
+ if (q != NO_NODE)
+ {
+ gcc_assert (IS (q, AT_SYMBOL));
+ at = save_expr (fold_convert (ssizetype, a68_lower_tree (NEXT (q), ctx)));
+ }
+ }
}
}
else
--- /dev/null
+begin [,]int aa = ((1,2,3),
+ (4,5,6),
+ (7,8,9));
+ [,]int bb = aa[2:,:];
+
+ assert(1 ELEMS bb = 2);
+ assert(2 ELEMS bb = 3);
+ assert(bb[1,1] = 4);
+ assert(bb[1,2] = 5);
+ assert(bb[1,3] = 6);
+ assert(bb[2,1] = 7);
+ assert(bb[2,2] = 8);
+ assert(bb[2,3] = 9)
+end