Hello Thomas,
Thomas Koenig wrote:
this patch yields an error for identical values in vector expression
Regression-tested. OK for trunk?
+ {
+ if (n->iterator != NULL)
+ continue;
+
+ en = n->expr;
+ if (gfc_dep_compare_expr (ec, en) == 0)
+ {
+ gfc_error_now ("Elements with the same value at
%L"
+ " and %L in vector subscript"
+ " in a variable definition"
+ " context (%s)", &(ec->where),
+ &(en->where), context);
+ retval = false;
+
+ /* Do not issue O(n**2) errors for n occurrences
+ of the same value. */
+ break;
+
+ }
+ }
Something went wrong with the indentation of the last two lines.
Additionally: How about simply returning with an "return false;"? One
error per vector subscript should be sufficient. In my humble opinion,
having multiple errors will clutter more the output than helping the
user - and in the code one can avoid "retval" which makes the code
(nearly undetectably) cleaner.
OK - with fixing the first item and considering the last item.
Thanks for the patch!
Tobias