`{.gcsafe.}` block breaks move analysis
### Nim Version

2.2

### Description

```nim
type NoCopy = object

proc `=copy`(a: var NoCopy, b: NoCopy) {.error.}


proc f(): NoCopy =
  {.gcsafe.}:
    NoCopy()

echo f()
```

### Current Output

```text
/tmp/testit.nim(7, 3) Error: '=copy' is not available for type <NoCopy>; requires a copy because it's not the last read of ' {.gcsafe.}:
  NoCopy()'; routine: f
```

### Expected Output

```text

```

### Known Workarounds

_No response_

### Additional Information

_No response_