| 219 | } |
| 220 | |
| 221 | expr Pointer::isConstGlobal() const { |
| 222 | auto bid = getShortBid(); |
| 223 | auto generic = bid.uge(has_null_block) && |
| 224 | expr(num_consts_src > 0) && |
| 225 | bid.ule(num_consts_src + has_null_block - 1); |
| 226 | auto tgt |
| 227 | = (num_nonlocals_src == 0 ? expr(true) : bid.ugt(num_nonlocals_src-1)) && |
| 228 | expr(num_nonlocals != num_nonlocals_src); |
| 229 | return !isLocal() && (generic || tgt); |
| 230 | } |
| 231 | |
| 232 | expr Pointer::isWritableGlobal() const { |
| 233 | auto bid = getShortBid(); |
no test coverage detected