Recent codegen bug passing pointer expressions to inline iterators
### Description

```Nim
iterator `..`(a, b: ptr int16): ptr int16 = discard
var a: seq[int16] #; let p = a[0].addr
var b: seq[ptr int16]
for x in a[0].addr .. b[1]: # `p .. b[1]` works
  discard
```

### Nim Version

Devel head a4dff1a03e514946b419fd9af0ac08b7a4b40a50 fails

### Current Output

```text
/u/cb/.cache/nim/itrBug_d/@mitrBug.nim.c:239:15: error: 
      cannot take the address of an rvalue of type 'NI16 *' (aka 'short *')
  239 |                 colontmp_ = &(&a__itr66ug_u4->data[((NI)0)]);
      |                             ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
```


### Expected Output

```text
Should compile.  Bug exhibition program does not test for any follow-on logic errors.
```


### Possible Solution

bisect might be a first start, but I did not do this.

### Additional Information

Works (or at least compiles) in nim-1.6.12 with both arc and refc.  Works with `{.closure.}` on the iterator.  Also works if the commented out `p` is used instead of the inline expression.  But as written, fails with both `--mm=arc` and `--mm=refc` on devel.