isByteArrayPinned# should consider BF_LARGE
First of all, i want to make sure isByteArrayPinned# is intended to let user know if a given 'ByteArray#/MutableByteArray#' is movable during safe FFI call, isn't it?
If that is the case, then the code for stg_isByteArrayPinnedzh is not enough, since not only bytes marked with BF_PINNED flag is not movable, but also the bytes which is marked with BF_LARGE. (I read the gc code and i'm confident this holds, but if it's not, please correct me).
Currently i'm using a FFI trickhttps://github.com/winterland1989/stdio/blob/master/cbits/bytes.c#L33 to get isByteArrayPinned# on older GHCs, i want to make sure if BF_LARGE works.
Trac metadata
| Trac field | Value |
|---|---|
| Version | 8.0.1 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture |