Line numbers wrong due to shared nodes

Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=1670

Reported by Martin Stjernholm mast@roxen.com

The following program:

    array a = ({});
    int main() {
      int i = 0;
      if (a[i]) i++;
    }

gives this output:

    Attempt to index the empty array with 0.
    foo.pike:1: main()

Note the line number. The problem disappears if the node sharing is defeated (directly in the hash function; --without-shared-nodes doesn't work anymore in 7.3).

This problem exists both in 7.2 and 7.3.